MyBatis的最简单体验

2018-02-27  本文已影响5人  小昭文

这里使用IDEA集成开发环境,mysql 数据库。

数据库

首先在数据库新建一个mybatis的库,然后在这个库中新建一个user的表,里面就2个字段:

id 
name

其中id为INT类型,name为VARCHAR类型

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `user` (`id`, `name`)
VALUES
    (4,'萧峰'),
    (5,'科比');

Java项目

1、新建一个maven项目,不使用骨架,项目创建完毕后,在pom.xml文件中添加依赖:

 mysql-connector-java
 mybatis
  <dependencies>
        <!--数据库连接-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>

        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
    </dependencies>

2、在生成的项目结构中的java文件夹下新建一个User的实体类,与数据库中的user表对应

package com.xiaozhao.bean;
public class User {
    private long id;
    private String name;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

3、有数据并且有了实体,剩下的自然就是数据库连接和关系映射了。

3.1、 在生成的项目结构中有一个resources文件夹,我们添加一个Configuration.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">
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据库连接 -->
            <dataSource type="UNPOOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
</configuration>

3.2 、在resources文件夹下添加数据表关系映射文件: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="User">
    <resultMap type="com.xiaozhao.bean.User" id="UserResult">
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
    </resultMap>

    <select id="queryAll" resultMap="UserResult">
        SELECT id,name FROM user
    </select>
</mapper>

最后把这个关系映射文件UserMapper.xml注册到主配置文件Configuration.xml中。

修改后的Configuration.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">
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据库连接信息 -->
            <dataSource type="UNPOOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>

   
    <mappers>
        <!--注册关系映射表-->
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

4、测试运行
在java源码文件夹下新建一个Test类,类里面加入一个main函数

import com.xiaozhao.bean.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.Reader;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        try {
            // 读取主配置文件
            Reader reader = Resources.getResourceAsReader("Configuration.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
            SqlSession sqlSession = factory.openSession();
             // 查询表中的所有数据
            List<User> list = sqlSession.selectList("User.queryAll");
            for (User user : list) {
                System.out.println(user);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

最后的输出结果:

User{id=4, name='萧峰'}
User{id=5, name='科比'}

完整的项目代码地址:https://gitee.com/dragon_hawk/mybatisstart

上一篇下一篇

猜你喜欢

热点阅读