1.创建一张表和表对应的实体类
2.创建一个 maven 项目,把项目添加到 git 仓库
添加到git仓库:
3.在文件 pom.xml 添加 mybiatis 相关依赖(导入 MyBatis jar 包,mysql 数据库驱动包)
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>8.0.16version>
- dependency>
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatisartifactId>
- <version>3.4.2version>
- dependency>
4.创建 MyBatis 全局配置文件
- "1.0" encoding="UTF-8" ?>
- configuration PUBLIC "-//mybatis.org//DTDConfig3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <environments default="development">
- <environment id="development">
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
- <property name="driver" value="${classDrvierName}"/>
- <property name="url" value="${url}"/>
- <property name="username" value="${uname}"/>
- <property name="password" value="${pwd}"/>
- dataSource>
- environment>
- environments>
- configuration>
type="POOLED" 数据库连接池,可以理解为一个集合,假设我们事先在集合中创建5个connection对象放到集合中,有请求要与数据库连接,就可以从池子里直接拿一个connection对象去与数据库连接,用完后不要真正意义上把这个对象销毁,而是放到池子中,假设有5个请求同时来了,也就用这5个创建好的对象就可以了,不用再创建新的,假如访问量比较大,这5个对象都在用,它也有一套机制来处理,比如说让后面来的连接请求先等待一会,如果还没有空闲的,再创建新的对象
我们可以把项目中所有值都提取到一个属性配置文件中(.properties文件),该文件应放在resources目录下,以后要改配置信息就只需要改此文件中的信息,注意在核心配置文件(在我们这里就是mybatis-config.xml文件)中配置此文件
- <properties resource="config.properties">properties>
放在resources目录下,创建一个file文件,名字可以随便起,后缀名以xml结尾:
例如:创建全局配置文件mybatis-config.xml
5. 定义接口
在接口中定义方法:
public interface UserDao{
}
例如:
6.创建 sql 映射文件
- "1.0" encoding="UTF-8"?>
- mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="接口地址">
- 定义 sql 语句
- mapper>
创建后要在mybatis-config.xml核心配置文件中进行配置:
7.测试MyBatis
读取配置文件:
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
创建 SqlSessionFactory:
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
创建 SqlSession:
SqlSession sqlSession = sessionFactory.openSession();
获得接口代理对象:
- sqlSession.getMapper(接口.class);
- sqlSession .close();关闭
SqlSessionFactory 接口
SqlSessionFactory 主要用来创建 SqlSession对象,由于SqlSessionFactory 对象创建开销较大,所以 SqlSessionFactory 一旦创建就会在整个应用过程中始终存在,没有理由去销毁再创建它,一个应用运行中也不建议多次创建 SqlSessionFactory。
SqlSession 接口
Sqlsession 用来每次与数据库会话使用,每与数据库交互一次,就需要创建一个 Sqlsession ,该接口中封装了对数据库操作的方法,与数据库会话完成后关闭会话。
Mybatis-Dao 层 Mapper 接口化开发
Mapper 接口开发方式只需要程序员编写 Mapper 接口,由 Mybatis 框架创建接口的动态代理对象,然后由动态代理对象调用与接口中方法名相同的 id 的 sql
sqlsession.getMapper(接口.class); //获得代理对象
Mapper 接口开发需要遵循以下规范:
1、 Mapper.xml 文件中的 namespace 与 mapper 接口的类路径相同.
2、 Mapper 接口方法名和 Mapper.xml 中定义的每个 statement 的 id 相同.
3、 Mapper 接口方法的输入参数类型和 mapper.xml 中定义的每个 sql 的 parameterType 的类型相同.
4、 Mapper 接口方法的输出参数类型和 mapper.xml 中定义的每个 sql 的 resultType 的类型相同.