一、简介
1、Mybatis
开源免费框架
,
原名叫
iBatis,2010
在
google code,2013
年迁
移到
github 。
2、
作用
:数据访问层框架
底层是对
JDBC
的封装。
3、mybatis
优点:
使用
mybatis
时不需要编写实现类
,
只需要写需要执行的
sql
命
令。
二、环境搭建
1、导入 jar 包
2、在
src
下新建全局配置文件
(
编写
JDBC
四个变量
) mybatis.xml
a、没有名称和地址要求
b、在全局配置文件中引入 DTD
或 schema
注意:如果导入
dtd 后没有提示
解决:Window--> preference --> XML --> XMl catalog --> add 按钮
c、mybatis.xml 文件内容
<?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>
<!-- default引用environment的id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 -->
<environment id="default">
<!-- 使用原生JDBC事务 -->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/_mybatis"/>
<property name="username" value="root"/>
<property name="password" value="lai98543211"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zzu/mapper/PeopleMapper.xml"/>
</mappers>
</configuration>
3、
新建以
mapper
结尾的包
,
在包下新建
:
实体类名
+Mapper.xml
a、
文件作用
:
编写需要执行的
SQL
命令
b、
把
xml
文件理解成实现类
.
c、xml
文件内容
<?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="a.b">
<select id="selectAll" resultType="com.zzu.pojo.People">
select * from test
</select>
</mapper>
4、
测试结果
(
只有在单独使用
mybatis
时使用
,
最后
ssm
整合时下面代
码不需要编写
)
InputStream is = Resources.getResourceAsStream("mybatis.xml");
//使用工厂设计模式
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//生产SqlSession
SqlSession session = factory.openSession();
List<People> list = session.selectList("a.b.selectAll");
for(People p : list) {
System.out.println(p.toString());
}
session.close();
三、环境搭建详解
1、
全局配置文件中内容
a、<transactionManager/> type
属性可取值
(1)、JDBC,
事务管理使用
JDBC
原生事务管理方式
(2)、MANAGED
把事务管理转交给其他容器
。
原生
JDBC
事务
setAutoMapping(false)
2、 <dataSouce/>type
属性
a、POOLED
使用数据库连接池
b、UNPOOLED
不实用数据库连接池
,
和直接使用
JDBC
一样
c、JNDI:java
命名目录接口技术