当前位置: 首页 > news >正文

第二章MyBatis入门程序

入门程序

  1. 创建maven程序

  2. 导入MyBatis依赖。pom.xml下导入如下依赖

<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency>
</dependencies>
  1. resources文件下创建ApplicationContext.xml文件并且导入如下代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test"/>		// 导入自己的数据库路径<property name="username" value="***"/>	// 输入自己的数据库账号<property name="password" value="***"/>		// 输入自己的数据库密码</dataSource></environment></environments>
</configuration>
  1. 创建表结构
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/506edd7b87f740569a63606033ae86e6.png
  2. resources文件下创建CarMapper.xml并且加入如下代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="name"><select id="saveCar" >insert into car(car_num, brand, guide_price, produce_time, car_type)values ('102', '大奔', 100, '2020-01-01', 'suv')</select>
</mapper>
  1. ApplicationContext.xml文件下加入如下代码
<mappers><mapper resource="CarMapper.xml"/>
</mappers>
  1. 主文件下加入如下代码并且执行
SqlSession sqlSession=null;try {SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory= sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("ApplicationContext.xml"));sqlSession=sqlSessionFactory.openSession();sqlSession.insert("saveCar");sqlSession.commit();}catch (IOException e){if(sqlSession!=null){sqlSession.rollback();}e.printStackTrace();}finally {if (sqlSession != null) {sqlSession.close();}}

入门程序的细节

  • MyBatis中的sql语句结尾可以不加;号。
  • resource这类单词一般从类的根路径下加载,url一般从绝对路径下加载资源
  • MyBatis的配置文件名可以不固定,也可以不固定位置。但是为了可移植性最好放在resource下

MyBatis的事务管理机制

ApplicationContext文件中的< transactionManager/>标签的type属性支持两个值

  • type=“JDBC”:MyBatis自己管理事务,采用原生jdbc去管理事务
  • type=“MANAGED”:MyBatis放弃管理事务,事务管理交给其他容器

开发依赖

引入junit单元测试

pom.xml加入如下依赖

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>

集成logback日志框架

ApplicationContext.xml加入如下代码

<settings><setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

Sql工具类封装

创建utiles/SqlSession.class类,并加入如下代码

public class SqlSessionUtil {private SqlSessionUtil() {}private static SqlSessionFactory sqlSessionFactory;static {try {SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("ApplicationContext.xml"));} catch (Exception e) {e.printStackTrace();}}public static SqlSession createSqlSession() {return sqlSessionFactory.openSession();}}
http://www.lryc.cn/news/129637.html

相关文章:

  • AgentBench::AI智能体发展的潜在问题(二)
  • C++中的运算符总结(4):逻辑运算符(上)
  • Flink安装与使用
  • CentOS系统环境搭建(七)——Centos7安装MySQL
  • 3.react useRef使用与常见问题
  • Axios使用CancelToken取消重复请求
  • 九耶丨阁瑞钛伦特-Spring boot与Spring cloud 之间的关系
  • 总结,由于顺丰的问题,产生了电脑近期一个月死机问题集锦
  • C#程序配置读写例子 - 开源研究系列文章
  • Angular中的管道Pipes
  • React入门 jsx学习笔记
  • sqlserver数据库中把一张表中的数据复制到另一张表中
  • el-table 多个表格切换多选框显示bug
  • UE5.2程序发布及运行问题记录
  • c语言strtol函数、strtod函数、strtoul函数浅悉
  • Spark第三课
  • LangChain手记 Chains
  • ONNX版本YOLOV5-DeepSort (rknn版本已经Ready)
  • MySQL的约束
  • Lnton羚通关于【PyTorch】教程:torchvision 目标检测微调
  • AMD fTPM RNG的BUG使得Linus Torvalds不满
  • idea 转换为 Maven Project 的方法
  • es1.7.2 按照_type先聚合,再按照时间二次聚合
  • pyqt5 如何修改QplainTextEdit 背景色和主窗口的一样颜色
  • 解决使用element ui时el-input的属性type=number,仍然可以输入e的问题。
  • ShardingSphere 可观测 SQL 指标监控
  • Redisson实现分布式锁示例
  • 使用Nginx作为一个普通代理服务器
  • chatglm2-6b模型在9n-triton中部署并集成至langchain实践 | 京东云技术团队
  • Shell编程之正则表达式(非常详细)