JavaSE

Mybatis开发环境搭建+入门程序

2018-05-08  本文已影响74人  熊猫读书营

在上一篇文章中简单的总结了一些Mybatis的相关知识点。
今天就通过一个入门小程序实际来演示一下Mybatis是如何使用的。
用一个小例子来完成一个数据的查询流程以及了解Mybatis核心api的操作流程。

入门程序搭建

我的开发环境为:Linux+jdk1.8+IntelliJIdea+Mysql
①首先使用IDEA新建一个Maven项目。
pom.xml文件中引入mybatis、mysql等相关依赖

<dependencies>
    <!--Mysql JDBC驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
    </dependency>

    <!--Mybatis依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.4</version>
    </dependency>

    <!--junit单元测试依赖-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    </dependencies>

②resources目录下新建mybatis-config.xml文件,用于配置数据库信息。具体的配置内容可以在Mybatis官网下拷贝过来

<?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"/><!--事务管理,默认的JDBC方式-->
            <!--数据源,使用数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo"/>
                <property name="username" value="root"/>
                <property name="password" value="{$password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--映射配置文件的路径-->
    <mappers>
        <mapper resource="mapper/usersMapper.xml"/>
    </mappers>
</configuration>

③接下来就可以建数据库表了,我们简单的模拟一个用户信息的表。

create database mybatis_demo;
use mybatis_demo;
create table users(
    id int auto_increment primary key,
    username varchar(50),
    password varchar(50),
    nickname varchar(20)
);
insert into users values(1,'admin','123','管理员');
insert into users values(2,'josiah','4567','用户1');
insert into users values(3,'lovebugs','678','用户2');

④新建Java实体类User,与数据库字段一致

public class User {
    private int id;
    private String username;
    private String password;
    private String nickname;

以及getter(),setter(),toString()方法。

⑤resources目录下新建mapper文件夹,下面新建userMapper.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">
<!--namespace为命名空间
    通常情况下,命名空间的值就是当前操作的实体类的全名称
-->
<mapper namespace="cn.lovebugs.entity.User">
    <select id="usersList" resultType="cn.lovebugs.entity.User">
        select * from users
    </select>
</mapper>

⑥接下来就可以进行测试查询了,新建Test类,通过junit进行测试。

import cn.lovebugs.entity.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class Test {

    @org.junit.Test
    public void test() throws IOException {
        //初始化mybatis配置环境
        String resource = "mybatis-config.xml";
        InputStream is = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

        //打开和数据库之间的会话
        SqlSession session = factory.openSession();

        //查询
        List<User> usersList = session.selectList("usersList");//usersList为userMapper.xml里定义的id名

        for (User user : usersList){
            System.out.println(user);
        }

        //关闭会话
        session.close();
    }

}
结果显示查询成功:

Mybatis核心API操作过程分解

上面已经执行成功了一个简单的查询过程,接下来解释一下上述方法中的执行过程。

首先我们第一步定义好了Mybatis的配置信息,即mybatis-config.xml文件,以及***Mapper.xml映射的配置文件,在程序运行过程中要对配置文件进行读取,接下来构建了一个和数据库之间的会话(使用SqlSessionFactoryBuilder),SqlSessionFactoryBuilder结合配置文件会构建出一个SqlSessionFactory的工厂类(整个应用过程中构建这一次就可以了)。
然后通过SqlSessionFactory来打开一个和数据库之间的会话SqlSession,通过会话的执行器Executer来执行sql语句,输出结果集。




微信公众号【编程资源网】
本公众号致力于免费分享全网最优秀的视频资源,学习资料,面试经验等,前端,PHP,JAVA,算法,Python,大数据等等,你想要的这都有,还会分享优质博文,提高你的认知与思维

编程资源网-QQ交流群:625494093
要进微信交流群的话加微信:lovebugs88
微信搜索公众号:编程资源网 或者扫描下方二维码直接关注,

原创文章,转载请注明出处

上一篇下一篇

猜你喜欢

热点阅读