21.05.06
主配置文件DataSource
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.passwd}"/>
</dataSource>
transactionManager :mybatis提交事务,回顾事务的方式
type:事务的处理的类型
1)JDBC:表示mybatis底层是调用Connection对象的,commit,rollback
2)MANAGED:把mybatis的事务处理委托给其他的容器(一个服务器软件,一个框架(spring))
dataSource:表示数据源,java体系中,规定实现了javax.sql.DataSource接口的都是数据源数据源表示Connection对象的
type:指定数据源的类型
1)POOLED:使用连接池,mybatis会创建PooledDataSource类
2)UPOOLED:不使用连接池,在每次执行sql语句,先创建连接类,执行sql,再关闭连接。
数据库的属性配置文件
数据库的属性配置文件:把数据库连接信息梵高一个单独的文件中,和mybatis主配置文件分开。
目的是便于修改,保存,处理多个数据库的信息。
1)在resources目录下定义一个属性配置文件
在属性配置文件中,定义数据,格式是key=value
key:一般使用,做多级目录的 例如:jdbc.mysql.driver jdbc.driver
2)在mybatis的主配置文件,使用指定文件的位置
在需要使用值的地方, ${key}
mybatis.xml
<!--指定properties文件的位置,从类路径开始找文件-->
<properties resource="jdbc.properties"></properties>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.passwd}"/>
</dataSource>
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test
jdbc.user=root
jdbc.passwd=111111
指定多个mapper文件的方式
第一种:
<mappers>
<mapper resource="com/node/dao/StudentDao.xml" / >
<mapper resource="com/node/dao/OrderDao.xml" />
</mappers>
第二种: 使用包名
name:xml文件(mapper文件)所在的包名,这个包中所有xml文件一次都能加载给mybatis
使用package的要求:
1)mapper文件名称需要和接口名称一样,区分大小写
2)mapper文件和dao接口需要在同一目录
<mappers>
<package name="com.node.dao">
</mappers>
PageHelper 分页
功能:实现多种数据库的分页,mysql就是代替limiit语句的
使用步骤:
1.加入maven依赖
<!--PageHelper依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
2.在mybatis主配置文件中,加入plugin
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.在你的查询方法之前,加入PageHelper方法调用
@Test
public void testSelectAllPageHelper(){
SqlSession sqlSession= MyBatisUtils.getSqlSession();
StudentDao dao=sqlSession.getMapper(StudentDao.class);
//加入PageHelper的方法,分页
//pageNum :第几页 ,从1开始
//pageSize:一页中有多少行数据
PageHelper.startPage(2,2);
List<Student> students=dao.selectAll();
for(Student stu:students){
System.out.println("=="+stu);
}
}