一、简介
持久层框架是 Java 开发的重要部分,但是现在流行的 Hibernate 是一种比较重型的框架,MyBatis作用一种轻量化的开源持久层框架,可以提高开发效率,同时MyBatis也是一种方便掌握与使用的框架。MyBatis 最大的优点就是 SQL 与代码完全分离。提高 Java 开发的规范性与可扩展性。
二、准备工作 1、下载地址: https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.3.0 2、导入工程所需jar包(连接mysql的jar包也是必须的) 3、日志配置 1) 加入log4j.properties配置文件 2) 修改配置文件如下
三、MyBatis工作流程 1、概述:读取基本配置文件,生成SqlSessionFactory,建立SqlSession,调用MyBatis的API,查询map配置,返回结果,关闭SqlSession。 2、基本配置文件:MyBatisConfig.xml中引入map配置文件,并且配置数据库的基本信息,如下:
<?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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!-- 使用连接池 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <!-- 使用mysql数据库 --> <property name="url" value="jdbc:mysql://localhost:3306/book"/> <!-- 自定义url--> <property name="username" value="root"/> <property name="password" value=""/> <!-- 使用自己数据库的密码 --> </dataSource> </environment> </environments> <mappers> <mapper resource="book/map/User.xml"/> </mappers> </configuration>3、map配置文件:map中包含各种sql语句,如下:
<?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="book.map.User"> <select id="findById" parameterType="int" resultType="book.pojo.User"> select * from User where id = #{id} </select> </mapper>4、SqlSessionFactory: 每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来获得。SqlSessionFactoryBuilder对象可以从XML配置文件,或从Configuration类的习惯准备的实例中构建SqlSessionFactory对象。
5、SqlSession: 在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。一旦你获得一个 session 之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要它的时 候, 你可以关闭 session。
代码如下: package book.test; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import book.pojo.User; public class Test { public static void main(String[] args){ String resource="book/map/MyBatisConfig.xml"; Reader reader=null; try { reader=Resources.getResourceAsReader(resource); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(reader); SqlSession session=sqlMapper.openSession(); User tmp=session.selectOne("findById",1); System.out.println("userName=="+tmp.getUserName()); session.close(); } }6、建立数据表:如下 插入第一个数据:id:1, userName:张山, password:zhangshan。
7、运行程序(注意实例程序建立的是java项目) 结构如下: 结果如下:
相关资源:MyBatis从入门到精通(刘增辉)