MyBatis 入門(一)--創建數據庫鏈接及基本操做

1、 數據庫建表

CREATE TABLE `user` ( `userId` int(11) NOT NULL AUTO_INCREMENT, `UserName` varchar(45) NOT NULL, `UserEmail` varchar(200) NOT NULL, PRIMARY KEY (`userId`), UNIQUE KEY `userId_UNIQUE` (`userId`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

2、maven配置

<dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.6</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.2</version>
        </dependency>
    </dependencies>

3、mybasit 配置

  1. jdbc.properties 配置 數據鏈接
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8&useSSL=true&serverTimezone=UTC
username=mybatis
password=mybatis
maxActive= 50
  1. 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>

    <properties resource="jdbc.properties" />   

    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>

    </mappers>
</configuration>

4、創建User的POJO

package com.elements.user.model;

public class User {

    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return UserName;
    }
    public void setUserName(String userName) {
        UserName = userName;
    }
    public String getUserEmail() {
        return UserEmail;
    }
    public void setUserEmail(String userEmail) {
        UserEmail = userEmail;
    }
    private int userId;
    private String UserName;
    private String UserEmail;


    @Override
    public String toString() {
        return "User [userId=" + userId + ", UserName=" + UserName
                + ", UserEmail=" + UserEmail + "]";
    }


}

5、 UserMapper配置文件

  • UserMapper 配置文件
<?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.elements.user.mapper">

  <resultMap type="com.elements.user.model.User" id="usermap">
        <id column="userId" property="userId"/>
        <result column="UserName" property="UserName"/>
        <result column="UserEmail" property="UserEmail"/>
    </resultMap>


    <select id="getAllUser" resultMap="usermap">
        select * from mybatis.user
    </select>

    <select id="getUserById" resultMap="usermap" parameterType="String">
        select * from mybatis.user where userId= #{userId}
    </select>


    <insert id="insert" parameterType="com.elements.user.model.User">
     insert into mybatis.user (UserName, UserEmail) values (
          #{UserName}, #{UserEmail}
     )
    </insert>

    <update id="update" parameterType="com.elements.user.model.User">
     update mybatis.user set UserName=#{UserName},
     UserEmail=#{UserEmail}
     where userId= #{userId}
    </update>

    <delete id="delete" parameterType="String">
     delete mybatis.user where userId= #{userId}
    </delete>

</mapper>
  • 將配置文件加入mybatis-config.xml的 mappers中
<mappers>

    <mapper resource="com/elements/user/mapper/UserMapper.xml" />

    </mappers>

6、 創建測試類

public class TestUser {

    @Test
    public void TestSelectAll() throws IOException {
        //
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

        SqlSession session = sqlSessionFactory.openSession();
        try {

            List<User> userlist = session
                    .selectList("com.elements.user.mapper.getAllUser");

            System.out.print(userlist);

        }catch(Exception e){
            System.out.print(e);
        }
        finally {
            session.close();
        }

    }

    @Test
    public void TestSelect() throws IOException {
        //
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

        SqlSession session = sqlSessionFactory.openSession();
        try {
            User user = (User) session.selectOne(
                    "com.elements.user.mapper.getUserById", "1");

            System.out.print(user);

        } finally {
            session.close();
        }

    }

    @Test
    public void TestInsert() throws IOException {

        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

        SqlSession session = sqlSessionFactory.openSession();
        try {
            User user = new User();
            user.setUserName("abc");
            user.setUserEmail("aaaaa");

            session.update("com.elements.user.mapper.insert", user);

            session.commit();

        } finally {
            session.close();
        }

    }

    @Test
    public void TestUpdate() throws IOException {

        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
                .build(inputStream);

        SqlSession session = sqlSessionFactory.openSession();
        try {
            User user = new User();
            user.setUserId(7);
            user.setUserName("aaaaa");
            user.setUserEmail("aaaaa");

            session.update("com.elements.user.mapper.update", user);

            session.commit();

        } finally {
            session.close();
        }

    }

}

項目代碼下載:http://pan.baidu.com/s/1kUGD61D java