Mybatis学习笔记一:环境搭建以及简单使用


1、Mybatis简介


MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
以上内容转自百度百科


2、环境搭建


2.1、开发环境搭建


开发环境:IntelliJ IDEA,操作系统:Mac OS 10.12,使用maven管理项目;
首先创建项目,并导入相关库,pom.xml文件如下:
<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
主要使用mybatis、mysql-connector-java,使用junit进行测试,具体使用哪个版本都可以,下载最新的即可。


2.2、数据库创建


数据库使用mysql,并建立表User
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `address` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

-- ----------------------------
--  Records of `user`
-- ----------------------------
BEGIN;
INSERT INTO `user` VALUES ('1', 'zhang', 'password', 'uestc');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;


2.3、配置mybatis配置文件


在main/java/resources文件夹下建立配置文件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>
    <!-- 别名 -->
    <typeAliases>
        <typeAlias alias="User" type="com.dfz.mybatis.model.User"/>
    </typeAliases>

    <!-- 配置数据库参数 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />
                <property name="username" value="root"/>
                <property name="password" value="zsfarther"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- 指定xml文件位置 -->
        <mapper resource="com/dfz/mybatis/model/User.xml"/>
    </mappers>
</configuration>
可以看到,第一部分为配置实体类的别名;
第二部分为配置数据库的地址等相关信息;
第三部分指定实体类的映射文件。
创建实体类User.java,这个就不再贴代码了,可以按照数据库信息来创建一个User

配置User的映射文件,并写一个查询方法。
<?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.dfz.mybatis.model.UserMapper">
    <select id="selectUserByID" parameterType="int" resultType="User">
        select * from user where id = #{id}
    </select>
</mapper>
在这里定义了方法的命名空间,方法名,参数以及返回值。其中返回值的User是在前面的mybatis-config.xml文件中定义的别名,并以此来映射实体类。


2.4、测试


使用JUnit对mybatis进行测试,测试代码如下:
public class Chapter1Test {

    private SqlSessionFactory sqlSessionFactory;
    private Reader reader;

    @Before
    public void before() {
        try {
            //读取mybatis参数
            reader = Resources.getResourceAsReader("mybatis-config.xml");
            //建立session factory
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Test
    public void test() {
        //打开session
        SqlSession session = sqlSessionFactory.openSession();
        //调用查找方法
        User user = session.selectOne("com.dfz.mybatis.model.UserMapper.selectUserByID",1);
        System.out.println(user);
        session.close();
    }
}

结果如下:


3、总结


Mybatis的简要启动顺序为:
1、读取配置文件;
2、根据配置文件创建session factory;
3、使用session factory创建session;
4、使用session调用某个方法;
5、关闭session。
Mybatis需要配置的内容包括:
1、配置typeAliases,即某个实体类的别名,用于描述参数;
2、配置数据库参数,包括环境、事务管理以及数据库地址等;
3、配置实体映射文件。
未尽之处后期再补,代码下载地址:https://github.com/EdwardEricZhang/MybatisFun





没有更多推荐了,返回首页