MyBatis
1.MyBatis简介
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。(是对于数据库,JDBC的封装使用)
2.MyBatis环境搭建(使用流程)
-
下载jar包
解压后根目录
lib下的相关jar -
部署jar包
2.1 web项目将jar包复制到webRoot下的lib文件夹中,因为它自带lib,当你学习到mybatis时,是时候开始抛弃syso+alt+/的输出形式了,此时我们要多多使用日志,因为在企业中是要用到日志来记录大部分情况的,所以这里我导如log4j的jar包,和JDBC核心jar。
java项目在resources根目录下自建一个lib文件夹同样复制进去。2.2 右击选中mybatis的jar——>Build Path——>Add to Build Path,就成功了
-
编写MyBatis核心配置文件(mybatis-config.xml,database.properties,mapper.xml)
3.1 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-3-config.dtd">
<configuration>
<!-- 引入database.properties文件 -->
<properties resource="database.properties"/>
<!-- 配置mybatis的log实现为LOG4J -->
<settings>
<setting name="logImpl" value="LOG4J"></setting>
</settings>
<!-- 配置别名 -->
<typeAliases>
<!-- 自我推荐更喜欢用这个 -->
<package name="com.smbms.pojo"/>
</typeAliases>
<!-- 配置mybatis多套运行环境 -->
<environments default="development">
<environment id="development">
<!-- 配置事务管理,采用JDBC的事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 将mapper文件加入到配置文件中 -->
<mappers>
<mapper resource="com/smbms/dao/user/UserMapper.xml"/>
</mappers>
</configuration>
.
3.2 database.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/smbms?characterEncoding=utf-8
username=root
password=root
3.3 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">
<mapper namespace="com.smbms.dao.user.UserMapper">
<!-- 查询用户表记录 -->
<select id="count" resultType="int">
select count(1) as count from smbms_user
</select>
</mapper>
-
创建实体类,属性与数据库字段相对应
-
创建测试类
@Test public void count(){ Logger logger=Logger.getLogger(UserMapperTest.class); String resource = "mybatis-config.xml"; // 获取mybatis-config.xml文件的输入流 InputStream is = null; try { //1、加载配置文件 is = Resources.getResourceAsStream(resource); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //创建SqlSessionFactory对象,此对象可以完成对配置文件的读取(会话工厂) SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); int count=0; SqlSession sqlSession=null; //创建会话 sqlSession= factory.openSession(); //MyBatis通过mapper文件的namespace和子元素的id来找到对应的SQL,从而执行查询操作 //注意执行的是Statement count=sqlSession.selectOne("com.smbms.dao.user.UserMapper.count"); logger.debug("UserMapperTest count---> "+count); //关闭SqlSession对象 sqlSession.close(); }
3.MyBatis中文帮助文档
mybatis的学习并不难,非常推荐使用帮助文档学习,当然学习任何技术,都推荐大家使用帮助文档MyBatis中文帮助文档