MyBatis核心组件
1:SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成
SqlSessionFactory,采用的是分布构建的Builder模式
2:SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用的是工厂模式,只构造一次,及数据库连接池
3:SqlSession(会话):一个既可以发送SQL执行结果,也可以获取Mapper的接口。一般我们会让其在业务逻辑代码中消失,而使用的是MyBatis提供的SQL Mapper接口编程技术,它能提高代码的可读性和可维护性
4:Sql Mapper(映射器):MyBatis新设计存在的组件,它有一个JAVA接口和XML文件或是注解构成,需要给出对应的SQL和映射规则,它负责发送SQL去执行,并返回结果
MyBatis的基础配置文件:官方PDF中可以复制修改
<?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>
<!-- environment描述数据库 -->
<environments default="development">
<environment id="development">
<!-- 配置事务管理器 -->
<transactionManager type="JDBC"/>
<!-- 采用数据库连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mytest"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 映射配置文件的路径,代表引入哪些映射器 -->
<mappers>
<mapper resource="mapper/usersMapper.xml"></mapper>
<!--<mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
</mappers>
</configuration>
通过XML构建SqlSessionFactory:首先读取mybatis.xml,通过SqlSessionFactoryBuilder中的Build方法去创建SsqlSessionFactory。
String resource = "mybatis.xml";
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
核心接口SqlSession的实现:SqlSession的作用类似于一个JDBC中的connection对象,代表着一个连接资源的启用,作用如下:
1:获取mapper接口
2:发送SQL给数据库
3:控制数据库事务
//打开和数据库之间的会话
SqlSession session = factory.openSession();
List<Users> ulist = session.selectList("usersList");
for (Users user : ulist){
System.out.println(user);
}
session.close();
**映射器MyBatis:**它由一个接口和对应的xml文件组成,它可以配置以下内容:
1:描述映射规则
2:提供SQL语句,并可以配置SQL参数类型、返回类型、缓存刷新等信息
3:配置缓存
4:提供动态SQL
!映射器的主要作用就是将SQL查询到的结果映射为一个POJO,或者将POJO的数据插入到数据库中,通过XML创建过程如下:(创建的XML需要在mybatis配置文件中的mapper下)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.damu.entity.Users">
<select id="usersList" resultType="com.damu.entity.Users">
select * from users
</select>
</mapper>
代码解释:namespace为所映射的实体类所在包地址,id标识了这条SQL语句,resultType代表返回的类型,Mybatis在默认情况下提供自动映射,只要SQL返回的列名能和POJO对应起来。
抽象工厂设计模式:
ORM模式:
创建MAVEN项目:
第一步:导入安装
第二步:创建完成后找需要得依赖,比如:mysql,mybatis
通过查找网站https://mvnrepository.com/
第三步:创建相应配置