第一次用MyBatis

2018-08-06  本文已影响0人  Chowing

以前我们都是用jdbc来将我们的java程序与数据库相连接,而MyBatis是对jdbc的一个封装。

MyBatis框架的引入

JDBC的问题:

MyBatis介绍

通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。

1、准备开发环境

导入jar包:mybatis-3.1.1.jar(低于这个版本的jar包需要导入很多依赖包)和mysql-connection-java,创建数据库和相应的表,SQL脚本如下:

create database mybatis;
use mybatis;
create table user(
id int primary key auto_increment,
username varchar(50),
birthday date,
sex varchar(20),
address carchar(50)
);
insert into user values(null,'xxw','1996-10-17','male',null);
insert into user values(null,'wyr','1997-04-24','female',null);

2、使用MyBatis查询表中数据(通过id查询)

添加Mybatis的配置文件SqlMapConfig.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>
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理 -->
            <transactionManager type="JDBC"/>
            <!-- 数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/数据库名字?characterEncoding=utf-8"/>
                <property name="username" value="账号"/>
                <property name="password" value="密码"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>

定义表所需要的实体类User.java

public class User{
    private int id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;
    //getter and setter and toString()
}

定义操作user表的sql映射文件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">
<mapper namespace="chowing">
    <select id="findUserById" parameterType="int" resultType="User">
        select * from user where id = #{id}
    </select>
</mapper>

在SqlMapConfig文件中注册User.xml文件,添加一个<mappers></mappers>字段,并在里面传入User.xml文件路径。

<configuration>
    .....
    <mappers>
        <mapper resource="userMapper.xml"/>
    </mappers>
</configuration>

接下来我们借助junit.jar包来编写的测试类

public class MyBatisFirst {
    private SqlSessionFactory sqlSessionFactory;
    @Before
    public void init() throws IOException {
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("SqlMapConfig.xml"));
    }
    @Test
    public void testFinMemberById() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        User user = null;
            try {
                user = sqlSession.selectOne("chowing.findUserById", "1");
            } catch (Exception e) {
                e.printStackTrace();
            }
        sqlSession.close();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读