Mybatis采用Mapper的方式发送SQL操作数据库
V哥官网:http://www.vgxit.com
本文对应视频教程:http://www.vgxit.com/course/22
我们之前用了SqlSession的selectOne()方法来发送Sql查询了数据。其实SqlSession还有selectList,delete,update,insert等方法可以来操作数据库。但是使用SqlSession的这些方法操作数据库不够直观。我们一般情况下都是用Mapper的方法来发送Sql的。这里还是以getUser举例:
package com.vgxit.learn.vgmybatis.ktdm.test;
import com.vgxit.learn.vgmybatis.ktdm.mapper.UserMapper;
import com.vgxit.learn.vgmybatis.ktdm.po.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;
public class Mybatis001Test {
public static void main(String[] args) {
//1,首先获取一个SqlSessionFactoryBuider对象。这个对象是用来创建SqlSessionFacotry
SqlSessionFactoryBuilder sessionFactoryBuilder = new SqlSessionFactoryBuilder();
//2,加载对应的配置文件
try (Reader configReader = Resources.getResourceAsReader("mybatis-config.xml")) {
//3,创建SqlSessionFactory
SqlSessionFactory sessionFactory = sessionFactoryBuilder.build(configReader);
//4,创建SqlSession
try (SqlSession sqlSession = sessionFactory.openSession()) {
//5,查询对应的数据
//获取对应的UserMapper
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
//6,打印数据
System.out.println(user);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
同学们可以想一想,为什么我们通过getMapper的方式可以创建一个我们可以直接使用的接口。我们这里用的是动态代理的方式,同学们可以自己下来跟一跟代码。