之前用了SqlSession的selectOne()方法来发送Sql查询了数据,但是使用SqlSession的这些方法操作数据库不够直观。我们一般情况下都是用Mapper的方法来发送Sql的。
package com.atbleuuu.mybaits.test;
import com.atbleuuu.mybaits.mapper.UserMapper;
import com.atbleuuu.mybaits.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 Mybaits001Test {
public static void main(String[] args) {
//首先获取一个SqlSessionFactoryBuilder对象用来创建SqlSessionFactary
SqlSessionFactoryBuilder SessionFactoryBuilder = new SqlSessionFactoryBuilder();
//加载对应配置文件
try ( Reader confingReader = Resources.getResourceAsReader("mybatis-config.xml")){
//创建SqlSessionFactory
SqlSessionFactory sessionFactory = SessionFactoryBuilder.build(confingReader);
//创建SqlSssion
SqlSession sqlSession = sessionFactory.openSession();
//查询对应的数据
// User user = sqlSession.selectOne("com.atbleuuu.mybaits.mapper.UserMapper.getUserById",1);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
//打印数据
System.out.println(user);
//关闭sqlSession
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
动态代理的方式: getMapper的方式可以创建一个我们可以直接使用的接口
最后附上结果