一、简介

持久层框架是 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项目)
结构如下:
这里写图片描述
结果如下:
这里写图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐