一、简介
1、Mybatis 开源免费框架,原名叫 iBatis,2010 在 google code,2013 年迁移到 github 。
2、作用:数据访问层框架底层是对 JDBC 的封装。
3、mybatis 优点:使用 mybatis 时不需要编写实现类,只需要写需要执行的 sql 命令。
二、环境搭建
1、导入 jar 包
2、在 src 下新建全局配置文件(编写 JDBC 四个变量) 2、在 src 2、在src下新建全局配置文件(编写 JDBC 四个变量) mybatis.xml
(1)、没有名称和地址要求
(2)、在全局配置文件中引入 DTD 或 schema
注意:如果导入 dtd 后没有提示
解决:Window--> preference --> XML --> XMl catalog --> add 按钮
(3)、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>
(1)、文件作用:编写需要执行的 SQL 命令
(2)、把 xml 文件理解成实现类.
(3)、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、全局配置文件中内容:
(1)、<transactionManager/> type 属性可取值
(a)、JDBC,事务管理使用 JDBC 原生事务管理方式
(b)、MANAGED 把事务管理转交给其他容器。
原生 JDBC 事务 setAutoMapping(false)
2、<dataSouce/>type 属性
(1)、POOLED 使用数据库连接池
(2)、UNPOOLED 不实用数据库连接池,和直接使用 JDBC 一样
(3)、JNDI:java 命名目录接口技术