【MyBatis】sqlSession.getMapper详解

简介: 【MyBatis】sqlSession.getMapper详解
public class MyBatisTest {
    @Test
    public void testInsert() throws IOException {
        //获取核心配置文件的输入流
        InputStream is= Resources.getResourceAsStream("mybatis-config.xml");
        //因为mybatis不是JDBC,所以不能把JDBC的工程给写一遍,它封装的JDBC
        // 所以需要能找到一个执行sql语句的sql对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionBuilder= sqlSessionFactoryBuilder.build(is);
        SqlSession sqlSession=sqlSessionBuilder.openSession();
        // sqlSession.getMapper(Class<T> type)  T 传进去的是Class对象,返回的是实例对象
        /**
         *  这个方法巧妙的 能够用到接口! 接口不能new ,能帮助我们创建接口的实现类(这个底层用到的是代理模式)
         *  既然是一个实现类,那么一定帮我们重写了UserMapper接口中的方法
         *  原理是通过当前的全类名找到当前的映射文件,在通过当前调用的方法找到映射中的sql语句 并执行,返回结果
         */
        UserMapper mapper=sqlSession.getMapper(UserMapper.class);
        //调用mapper接口中的方法实现添加用户信息功能
        //update和insert的返回值int是对sql中该sql语句影响的行数,比如你插入一条数据,成功的话sql会提示1行代码收影响,返回的int是1
        int result=mapper.insertUser();
        System.out.println("结果+"+result);
        sqlSession.commit();
        sqlSession.close();
    }
}

注意:

你可能遇到没有报错,为什么数据库表没有刷新数据,那么大多是因为你没有执行commit提交事务  sqlSession.commit();

默认是回滚的

当然我们也可以设置自动提交事务;

在这里将autoCommit设置为true即可

相关文章
|
2天前
|
缓存 Java 数据库连接
MyBatis一级缓存详细讲解
MyBatis一级缓存详细讲解
51 0
|
2天前
|
SQL 缓存 Java
MyBatis原理分析之获取SqlSessionFactory
MyBatis原理分析之获取SqlSessionFactory
111 0
|
2天前
|
缓存 Java 数据库连接
一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
445 1
|
2天前
|
设计模式 缓存 Java
MyBatis原理分析之获取SqlSession
MyBatis原理分析之获取SqlSession
110 0
|
缓存 Java 数据库连接
mybatis学习(42):mybatis的一级缓存
mybatis学习(42):mybatis的一级缓存
64 0
mybatis学习(42):mybatis的一级缓存
|
SQL Java 数据库连接
MyBatis - SqlSession(下)
MyBatis - SqlSession(下)
135 0
|
SQL 缓存 Java
MyBatis - SqlSession(上)
MyBatis - SqlSession(上)
156 0
|
缓存 Java 数据库连接
MyBatis - 一级缓存(上)
MyBatis - 一级缓存(上)
82 0
MyBatis - 一级缓存(上)
|
SQL 存储 缓存
MyBatis - 一级缓存(下)
MyBatis - 一级缓存(下)
80 0
MyBatis - 一级缓存(下)
|
安全 Java 数据库连接
Mybatis源码系列3-三种SqlSession的区别(下)
Mybatis源码系列3-三种SqlSession的区别(下)