7.1关于配置文件
transactionManager:提交事务,回顾事务的方式
type:事务的处理类型
-
JDBC
:表示mubatis底层是调用JDBC中的Connection对象,commit,rollback -
MANAGED
:把mybatis的事务处理委托给其他容器(服务器软件,框架(spring))
dataSource:表示数据源,在java体系中规定实现了javax.sql.DtaSource接口的都是数据源(Connection对象)
type:指定数据源的类型
-
POOLED
:使用连接池,mubatis会创建PooledDataSource类 -
UPOOLED
:不适用连接池,在每次执行sql语句,先创建连接,执行sql,再关闭连接。mybatis会创建一个UpooledDataSource,管理Connection对象的使用 -
JNDI
:java命名和目录服务(≈windows注册表)
数据库的属性配置文件
把数据库连接信息放到一个单独的文件中。和mybatis主配置文件分开。目的是便于修改,保存,管理多个数据库的信息
- 在resources目录中定义一个属性配置文件,xxxx.properties;在属性配置文件中,定义数据,格式是 key=value(key: 一般使用 . 做多级目录的),如:
jdbc.driver=com.mysql.jdbc.Driver
; - 在mybatis的主配置文件,使用
<property>
指定文件的位置;在需要使用值的地方,${key}
[图片上传失败...(image-ad9089-1595058721362)]
主配置文件(仅显示主要部分)
<properties resource="jdbc.properties"/>
<environments default="myenv">
<environment id="myenv">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url"
value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
多个mapper文件的指定
- 在
<mappers>
下用多个<mapper
进行指定 - 在
<mappers>
下用<package
格式:<package name="com/mybatis/dao"/>
name
:表示mapper文件所在的包名,这个包名下的所有mapper文件都一次加载给mybatis
要求:1.mapper文件名要和接口名一致,且区分大小写;2.mapper文件要和dao接口处于一个目录下
PageHelper(数据分页)
我们在实际应用中不可能一次性把数据库的内容都获取出来,像我们看商品的评论,往往分若干页,每页有一定数量的评论,这样就需要用到PageHelper(PageHelper不属于mybatis哦,是一个国人写的一个插件)。
这种操作我们在数据库一般会用select * from student limit 0,3
,PageHelper就帮我们做了这一步操作
使用步骤:
- 加入依赖
<!--PageHelper依赖--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> </dependency>
- 在主配置文件中配置插件
<!--pagehelper插件--> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> </plugins>
- 在调用类中加入
PageHelper.startPage(1,3);
@Test public void test01ByPage(){ SqlSession sqlSession= MyBatisUtils.getSqlSession(); StudentDao dao=sqlSession.getMapper(StudentDao.class); PageHelper.startPage(1,3); List<Student> student=dao.selectPage(); for (Student s: student ) { System.out.println(s); } }
PageHelper.startPage(1,3)
中第一个参数pageNum
代表开始的页数;第二个参数pageSize
代表每页展示的数据别忘了接口方法和mapper文件的添加
[图片上传失败...(image-a1bef3-1595058721362)]