myBatis入门案例

myBatis的一个入门案例

功能:

(1)查出单个用户

(2)查出所有用户

(3)修改用户信息

(4)新增用户信息

(5)删除用户信息

1、加载相关的包

mybatis-3.2.3.jar

mysql-connector-java-5.1.7-bin.jar

2、目录结构

3、配置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" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url"
                    value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/mybatis/domain/User.xml" />
    </mappers>
</configuration>

4、User.java模型文件

package com.mybatis.domain;

import java.io.Serializable;

public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    private int id;
    private String name;
    
    public User(){};
    
    public User(int id,String name){
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String toString(){
        return "User [id:" + this.id + ";name:" + this.name +"]";
    }
}

5、User.xml(sql配置文件)

<?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">
    <cache />
    <!-- 通过id查询一个用户 -->
    <select id="selectUser" parameterType="int"
        resultType="com.mybatis.domain.User">
        select * from user where id=#{id}
    </select>
    
    <select id="selectUserToHashMap" parameterType="hashMap" resultType="hashMap">
        select * from user where id=#{id} and name=#{name}
    </select>
    
    <!-- 获取所有的数据 -->
    <select id="getUser" resultType="com.mybatis.domain.User">
        select * from user
    </select>
    
    <!-- 插入一条记录 -->
    <insert id="insertUser" parameterType="com.mybatis.domain.User" useGeneratedKeys="true" keyProperty="id">
        insert into user(id,name) values(#{id},#{name})
    </insert>
    
    <!-- 更新一条记录 -->
    <update id="updateUser" parameterType="com.mybatis.domain.User">
        update user set name=#{name} where id = #{id}
    </update>
    
    <!-- 删除一条记录 -->
    <delete id="deleteUser" parameterType="int">
        delete from user where id = #{id}
    </delete>
</mapper>

6、测试代码

package com.mybatis.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 com.mybatis.domain.User;

public class UserTest {
    public static void main(String[] args) throws IOException {
        String resource = "configuration.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession session = sqlSessionFactory.openSession(true);        //true自动提交
        
        try {
            //查询一个用户
            User user = session.selectOne("selectUser", "1");
            System.out.println(user);
            
            Map paraMap = new HashMap();
            paraMap.put("id", 2);
            paraMap.put("name", "李四");
            Map user2 = session.selectOne("selectUserToHashMap",paraMap);
            System.out.println("User [id:"+user2.get("id")+";name:"+user2.get("name")+"]");
            
            //获取所有用户
            System.out.println("**************");
            List<User> users = session.selectList("getUser");
            for(User user1 : users){
                System.out.println("User [id:"+user1.getId()+";name:"+user1.getName()+"]");
            }
            System.out.println("**************");
            
            //插入一个用户
            User newUser = new User();
            newUser.setId(4);
            newUser.setName("赵六");
            int id = session.insert("insertUser", newUser);
            session.commit();
            System.out.println(id);
            
            //修改用户
            newUser.setId(4);
            newUser.setName("赵六六");
            session.update("updateUser", newUser);
            
            //删除用户
            session.delete("deleteUser", 4);
        } catch (RuntimeException e) {
            e.printStackTrace();
        }finally{
            session.close();
        }
    }
}
原文地址:https://www.cnblogs.com/jingyunyb/p/3607527.html