-
-
-
org.mybatis -
mybatis -
3.5.7 -
-
-
-
-
junit -
junit -
4.12 -
test -
-
-
-
mysql -
mysql-connector-java -
8.0.16 -
-
-
-
log4j -
log4j -
1.2.17 -
-
习惯上命名为mybatis-config.xml(文件名仅仅只是建议,并非强制要求)。
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息(存放的位置是src/main/resources目录下)
将来整合Spring之后,这个配置文件可以省略,所以大家操作时可以直接复制、粘贴。
- "1.0" encoding="UTF-8" ?>
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
-
-
"jdbc.properties"/> -
-
-
-
-
- <package name="cn.xs.mybatis.pojo"/>
-
-
-
-
default="development"> -
-
"development"> -
-
"JDBC"/> -
-
"POOLED"> -
"driver" value="${jdbc.driver}"/> -
"url" value="${jdbc.url}"/> -
"username" value="${jdbc.username}"/> -
"password" value="${jdbc.password}"/> -
-
-
-
-
-
-
-
-
- <package name="cn.xs.mybatis.mapper"/>
-
在 src/main/resources 文件夹下创建关于数据库连接的配置文件 jdbc.properties:
- jdbc.driver=com.mysql.cj.jdbc.Driver
- jdbc.url=jdbc:mysql://localhost:3308/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false
- jdbc.username=root
- jdbc.password=root
1.2创建mapper接口
MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。
- public interface UserMapper {
- //添加用户
- int insertUser();
- }
1.3创建MyBatis的映射文件
1.3.1命名和位置
- 表所对应的实体类的类名+Mapper.xml
- 例如:表users,映射的实体类为Users,所对应的映射文件为UserMapper.xml
- 因此一个映射文件对应一个实体类,对应一张表的操作
- MyBatis映射文件用于编写SQL,访问以及操作表中的数据(文件存放的位置是src/main/resources/mappers目录下)
1.3.2两个一致
mapper接口和映射文件要保证两个一致:
- mapper接口的全类名和映射文件的namespace一致
- mapper接口的方法的方法名要和映射文件中的SQL中的id保持一致。
- "1.0" encoding="UTF-8" ?>
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"cn.xs.mybatis.mapper.UserMapper"> -
-
-
"insertUser"> - insert into users values(null,'admin','123456',23,'男','123@qq.com')
-
-
1.4执行流程和原理
1.4.1 执行流程
- /**
- * SqlSession默认不自动提交事务,若需要自动提交事务
- * 可以使用SqlSessionFactory.openSession(true);
- */
- @Test
- public void testMyBatis() throws IOException {
- //加载核心配置文件,以字节输入流的方式获取,因为是流的方式,所以要抛出异常
- InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
- //获取SqlSessionFactoryBuilder
- SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
- //获取sqlSessionFactory,工厂模式:将我们创建对象的过程进行封装,直接提供想要的对象
- // 通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
- SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
-
- //创建SqlSession对象,此时通过SqlSession对象所操作的sql都必须手动提交或回滚事务
- //SqlSession sqlSession = sqlSessionFactory.openSession();
- //创建SqlSession对象,此时通过SqlSession对象所操作的sql都会自动提交
- SqlSession sqlSession = sqlSessionFactory.openSession(true);
- //获取mapper接口对象,我们只有接口,没有实现类,
- // getMapper当我们传进去一个方法的类对象的时候,这个方法能帮助我们获取这个类的实例化对象
- // 代理模式:帮助我们返回一个接口的实现类对象
- UserMapper mapper = sqlSession.getMapper(UserMapper.class);
- //测试功能
- int result = mapper.insertUser();
- //提交事务
- //sqlSession.commit();
- System.out.println("result:" + result);
- }
-
相关阅读:
超详细!一步到位!MySQL安装和基本使用
[Power Query] 数据行列的增删、填充与替换
虚幻引擎 快速的色度抠图 Chroma Key 算法
⭐每天一道leetcode:21.合并两个有序链表(简单;双指针)
七夕玫瑰花合集
YOLOX加强特征提取网络Panet分析
python的类/方法引用---人机石头剪刀布游戏
golang工程——gRpc 拦截器及原理
DateTime和DateTimeOffset是同胞兄弟吗?
msfvenom制作主控与被控端
-
原文地址:https://blog.csdn.net/m0_61916154/article/details/126973202