mybatis搭建

1、准备jar包:

拷贝到web工程的lib目录

2、创建用户表,并插入一条测试数据

Create TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(50) DEFAULT NULL,
  `userAge` int(11) DEFAULT NULL,
  `userAddress` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;


Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong');

3、在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 鼠标右键点击 JavaResource

4、设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下:

<?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>
    <typeAliases> 
        <typeAlias alias="User" type="com.mb.mybatis.model.User"/> 
    </typeAliases> 

    <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://127.0.0.1:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8" />
            <property name="username" value="root"/>
            <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="com/mb/mybatis/model/User.xml"/>
    </mappers>
</configuration>

5、建立与数据库对应的 java class,以及映射文件

在src_user下建立package:com.mb.mybatis.model ,并在这个 package 下建立 User 类

package com.mb.mybatis.model;

public class User {
    private int id;
    private String userName;
    private String userAge;
    private String userAddress;
    
    /**
     * 文章id
     */
    private String aid;
    
    /**
     * 文章标题
     */
    private String title;
    
    /**
     * 文章内容
     */
    private String content;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserAge() {
        return userAge;
    }
    public void setUserAge(String userAge) {
        this.userAge = userAge;
    }
    public String getUserAddress() {
        return userAddress;
    }
    public void setUserAddress(String userAddress) {
        this.userAddress = userAddress;
    }
    public String getAid() {
        return aid;
    }
    public void setAid(String aid) {
        this.aid = aid;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}

6、同时建立这个User 的映射文件 User.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="com.mb.mybatis.inter.IUserMapper">
    <resultMap type="User" id="resultListUser">
        <id column="id" property="id" />
        <result column="userName" property="userName" />
        <result column="userAge" property="userAge" />
        <result column="userAddress" property="userAddress" />
    </resultMap>
    
    <insert id="addUser" parameterType="User" 
        useGeneratedKeys="true" keyProperty="id"> 
        insert into user(userName,userAge,userAddress)  
             values(#{userName},#{userAge},#{userAddress})  
    </insert>
    
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id}
    </delete>
    
    <update id="updateUser" parameterType="int">
        update user set userAddress = 'hefei'
        where id = #{id}
    </update>
    
    <select id="selectUserByID" parameterType="int" resultType="User">
        select * from `user` where id = #{id}
    </select>
    
    <select id="selectUsers" parameterType="string" resultMap="resultListUser">
        select * from user where userName like #{userName}
    </select>
</mapper>

7、开始测试
在test_src 源码目录下建立com.mb.test这个package,并建立测试类Test:

package com.mb.test;

import java.io.Reader;

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.mb.mybatis.model.User;

public class Test {
    private static SqlSessionFactory sqlSessionFactory;
    private static Reader reader; 

    static{
        try{
            reader    = Resources.getResourceAsReader("Configuration.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public static SqlSessionFactory getSession(){
        return sqlSessionFactory;
    }
    
    public static void main(String[] args) {
        SqlSession session = sqlSessionFactory.openSession();
        try {
        User user = (User) session.selectOne("com.mb.mybatis.models.UserMapper.selectUserByID", 1);
        System.out.println(user.getUserAddress());
        System.out.println(user.getUserName());
        } finally {
        session.close();
        }
    }
}

二、接下来,将讲述基于接口的操作方式,增删改查。

目录结构:

1、接口IUserMapper:

package com.mb.mybatis.inter;

import java.util.List;

import com.mb.mybatis.model.Article;
import com.mb.mybatis.model.User;

public interface IUserMapper {
    /**
     * 增加
     * @param user
     */
    public void addUser(User user);
    
    /**
     * 删除
     * @param id
     */
    public void deleteUser(int id);
    
    /**
     * 修改
     * @param id
     */
    public void updateUser(int id);
    
    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    public User selectUserByID(int id);
    
    /**
     * 查询用户
     * @param userName
     * @return
     */
    public List<User> selectUsers(String userName); 
    
    /**
     * 查询文章列表
     * @param userid
     */
    public List<User> getUserArticles(int id);
}

2、测试文件:

package com.mb;

import java.io.Reader;
import java.util.List;

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 org.junit.Test;

import com.mb.mybatis.inter.IUserMapper;
import com.mb.mybatis.model.Article;
import com.mb.mybatis.model.User;

/**
 * 测试类,增删改查方法测试
 * @author mabiao
 *
 */
public class MybatisTest {
    private static SqlSessionFactory sqlSessionFactory;
    private static Reader reader; 

    static{
        try{
            reader    = Resources.getResourceAsReader("Configuration.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public static SqlSessionFactory getSession(){
        return sqlSessionFactory;
    }
    
    /**
     * 测试增加,增加后,必须提交事务,否则不会写入到数据库.
     */
    @Test
    public void addUser(){
        User user=new User();
        user.setUserAddress("合肥");
        user.setUserName("迪科");
        user.setUserAge("30");
        SqlSession session = sqlSessionFactory.openSession();
        try {
            IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
            iUserMapper.addUser(user);
            session.commit();
            System.out.println("当前增加的用户 id为:"+user.getId());
        } finally {
            session.close();
        }
    }
    
    /**
     * 删除数据,删除一定要 commit.
     * @param id
     */
    @Test
    public void deleteUser(){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            IUserMapper iUserMapper=session.getMapper(IUserMapper.class);          
            iUserMapper.deleteUser(2);
            session.commit();            
        } finally {
            session.close();
        }
    }
    
    /**
     * 修改
     */
    @Test
    public void updateUser(){
        //先得到用户,然后修改,提交。
        SqlSession session = sqlSessionFactory.openSession();
        try {
            IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
            iUserMapper.updateUser(3);
            session.commit();
        } finally {
            session.close();
        }
    }
    
    /**
     * 查询
     */
    @Test
    public void selectOne() {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            User user = (User) session.selectOne("com.mb.mybatis.inter.IUserMapper.selectUserByID", 1);
            System.out.println(user.getUserAddress());
            System.out.println(user.getUserName());
        } finally {
            session.close();
        }
    }
    
    /**
     * 查询
     */
    @Test
    public void select() {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
            User user = iUserMapper.selectUserByID(1);
            System.out.println(user.getUserAddress());
            System.out.println(user.getUserName());
        } finally {
            session.close();
        }
    }
    
    /**
     * 查询列表
     * @param userName
     */
    @Test
    public void getUserList(){
        SqlSession session = sqlSessionFactory.openSession();
        try {
            IUserMapper iUserMapper=session.getMapper(IUserMapper.class);
            List<User> users = iUserMapper.selectUsers("summer");
            for(User user:users){
                System.out.println(user.getId()+":"+user.getUserName()+":"+user.getUserAddress());
            }
        } finally {
            session.close();
        }
    }
}
原文地址:https://www.cnblogs.com/mabiao008/p/6112320.html