简介
1. Mybatis 是
开源免费orm框架
.
原名叫
iBatis
,2010
在
google code,2013
年迁移到 github
2.
作用
:
数据访问层框架
.
ORM:
对象关系映射
(
Object Relational Mapping,简称ORM)
,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
案例:
![](https://i-blog.csdnimg.cn/blog_migrate/7a33568260c0f6242a075c65e7e3d42e.png)
2.在 src 下新建全局配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3config.dtd">
<configuration>
<!-- default 引用 environment 的 id,当前所使用的环境 -->
<environments default="default">
<!-- 声明可以使用的环境 mysql oracle等数据库 -->
<environment id="default"> <!-- id名,随便写,标识符 -->
<!-- 使用原生 JDBC 事务 -->
<transactionManager type="JDBC"></transactionManager>
<!-- mybatis自带连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///test"/>
<property name="username" value="root"/>
<property name="password" value="******"/>
</dataSource>
</environment>
//还可以配置其他数据库连接信息
<environment id="default2">
.....
</environment>
</environments>
<mappers>
<!-- <mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/> -->
<package name="com.bjsxt.mapper"/> //接口绑定
</mappers>
</configuration>
3.mapper层:实体类名+Mapper.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">
<!-- namesapce:理解成实现类的全路径(包名+类名) -->
<mapper namespace="cn.itsource._02mybatis.mapper.FlowerMapper" >
<!-- id:方法名 parameterType:参数类型 resultType:返回值类型.
<select id="selAll" resultType="cn.itsource.domain.Flower">
select * from flower
</select>
</mapper>
4.测试
InputStream is = Resources.getResourceAsStream("myabtis.xml");
//使用工厂设计模式
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
//生产 SqlSession
SqlSession session=factory.openSession();
//1.适用于查询结果都需要遍历的需求 返回值为 List<resultType 属性控制>
List<Flower> list = session.selectList("cn.itsource._02mybatis.mapper.FlowerMapper.selAll");
for (Flower flower : list) {
System.out.println(flower);
}
session.close(); //记得关闭session