环境搭建
使用Gradle或Maven导入
创建Mybatis的核心配置文件
- 作用:用于配置连接数据库的环境以及Mybatis的全局配置信息
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration
PUBLIC "-//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://120.55.96.129:3306/ssm?serverTimezone=UTC"/>
<property name="username" value="jiunian"/>
<property name="password" value="jiunian"/>
</dataSource>
</environment>
</environments>
<!--引入映射文件-->
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>
</configuration>
创建mapper接口
- 相当于dao
- 区别:mapper仅仅是接口,无需提供实现类
创建Mybatis的映射文件
- 对象关系映射(Object Relationship Mapping)
- 对象:Java的实体类对象
- 关系:关系型数据库
- 映射:二者之间的对应关系
- 映射文件的命名规则:
表所对应的实体类的类名+Mapper.xml
- 一个映射文件对应一个实体类,对应一张表的操作
- Mybatis映射文件用于编写SQL,访问以及操作表中的数据
- 映射文件存放在
src/main/resources/mappers
目录下
- Mybatis中可以面向接口操作数据,需要保证两个一致
- mapper接口的全类名和映射文件的空间命名保持一致
- mapper接口中方法的方法名和映射文件中编写SQL的标签和id属性保持一致
测试
// 获取核心配置文件的输入流
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
// 获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
// 获取sql的会话对象SqlSession,为Mybatis提供的操作数据库对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 获取userMapper的代理实现类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
// 对用mapper接口中的方法,实现添加用户的功能
// int result = mapper.insertUser();
// 提供sql以及唯一标识找到sql并执行,唯一标识是namespace.sqlId
int result = sqlSession.insert("com.cjd.mybatis.mapper.UserMapper.insertUser");
System.out.println("添加完成"+result);
// 提交事务
sqlSession.commit();
sqlSession.close();
- SqlSession
:代表java程序和数据库之间的会话
- SqlSessionFactory
:生产SqlSession的工厂
- 工厂模式:如果创建某一个对象,使用的过程基本固定,那么我们可以把创建这个对象的相关代码封装在一个工厂类中,后续都使用这个工厂类来生产我们需要的对象