本文共 4461 字,大约阅读时间需要 14 分钟。
MyBatist简介
 MyBatis是一款优秀的基于ORM的半自动轻量级持久层框架,它支持定制化SQL、存储过程以及高级映
射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的
XML或注解来配置和映射原生类型、接口和Java的POJO (Plain Old Java Objects,普通老式Java对 象)
为数据库中的记录。
MyBatis的优点
 半自动化的持久层框架,对开发人员开说,核心sql还是需要自己进行优化,sql和java编码进行分离,功能边界清晰,一个专注业务,一个专注数据。
MyBatis基本使用
引入依赖
mysql mysql-connector-java 8.0.23 org.mybatis mybatis 3.4.6 junit junit 4.13.1 
编写实体类
package com.rangers.entity;/** * @Author Rangers * @Description * @Date 2021-03-04 **/public class User {    private int id;    private String name;    private String address;    @Override    public String toString() {        return "com.rangers.entity.User{" +                "id=" + id +                ", name='" + name + '\'' +                ", address='" + address + '\'' +                '}';    }    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 getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }}编写核心配置文件SqlMapConfig.xml
编写接口方法类及映射文件XxMapper.xml
package com.rangers.dao;import com.rangers.entity.User;import java.util.List;/** * @Author Rangers * @Description * @Date 2021-03-10 **/public interface IUserDao {    List            findAll();    User findOne(User user);    int insertUser(User user);    int updateUser(User user);    int deleteUser(User user);}      insert into user(id,name,address) values(#{id},#{name},#{address}) update user set name=#{name},address=#{address} where id=#{id} delete from user where id = #{id} 
编写测试类
package com.rangers;import com.rangers.dao.IUserDao;import com.rangers.entity.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 org.junit.After;import org.junit.Before;import java.io.IOException;import java.io.InputStream;import java.util.List;/** * @Author Rangers * @Description * @Date 2021-03-10 **/public class Test {    private IUserDao userDao;    SqlSession sqlSession ;    @Before    public void before() throws IOException {        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        sqlSession = sqlSessionFactory.openSession();        userDao = sqlSession.getMapper(IUserDao.class);    }    @org.junit.Test    public void testFindAll(){        List        users = userDao.findAll();        System.out.println(users);    }    @org.junit.Test    public void testFindOne(){        User param = new User();        param.setId(1);        User user = userDao.findOne(param);        System.out.println(user);    }    @org.junit.Test    public void testInsert(){        User param = new User();        param.setId(3);        param.setName("bug");        param.setAddress("北京");        boolean flag = userDao.insertUser(param)>0;        System.out.println("新增结果:"+flag);    }    @org.junit.Test    public void testUpdate(){        User param = new User();        param.setId(3);        param.setName("虫子");        param.setAddress("北京");        boolean flag = userDao.updateUser(param)>0;        System.out.println("修改结果:"+flag);    }    @org.junit.Test    public void testDelete(){        User param = new User();        param.setId(3);        boolean flag = userDao.deleteUser(param)>0;        System.out.println("删除结果:"+flag);    }    @After    public void close(){        System.out.println("关闭连接");        // 提交事务        sqlSession.commit();        // 关闭连接        sqlSession.close();    }}     转载地址:http://bwmzk.baihongyu.com/