zoukankan      html  css  js  c++  java
  • 06_关于SqlSession

    一.SqlSession适用范围

    (1).SqlSessionFactoryBuilder

    通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory

    将SqlSessionFactoryBuilder当成一个工具类使用,无需单例模式管理SqlSessionFactoryBuilder。

    在需要创建SqlSessionFactory时,只需new一次SqlSessionFactoryBuilder即可。

     //mybatis配置文件
     String resource="SqlMapConfig.xml";
           
     //得到配置文件
     InputStream inputStream=Resources.getResourceAsStream(resource);
            
    //创建会话工厂,传入mybatis的配置文件信息
    SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

    (2)SqlSessionFactory

    通过SqlSessionFactory创建SqlSession,使用单例模式管理SqlSessionFactory(工厂一旦创建,使用一个单例)

    (MyBatis与Spring整合后,使用单例模式管理SqlSessionFactory)

    //通过工厂得到SqlSession
    SqlSession sqlSession=sqlSessionFactory.openSession();

    (3)SqlSession

    SqlSession是一个面向用户(软件工程师)的接口。

    SqlSession中提供了许多操纵数据库的方法,如:

    selectOne():返回单个对象

    selectList():返回当个或多个对象

    .....

    SqlSession是线程不安全的,在SqlSession实现类中除了接口中的方法(操作数据库的方法),还有数据域属性。

    SqlSession最佳应用场合在方法体内,定义成局部变量使用。

    //通过SqlSession操作数据库
    //第一个参数:映射文件中statement的id,等于:namespace+"."+statement的id
    //第二个参数:指定映射文件中的所匹配的parameterType类型的参数
    User user=sqlSession.selectOne("test.findUserById", 2);
    //删除用户
    sqlSession.delete("test.deleteUserById",2);
    //插入数据,后返回id
    sqlSession.insert("test.insertUserReturnId",user);
    //更新数据
    sqlSession.update("test.updateUserById",user);
  • 相关阅读:
    极简风格的LOGO,收集一波!
    如何利用AI软件中的混合器工具制作文字
    国内有哪些非常有设计感的 App?
    如何用PS制作花型背景图
    怎样去调整摄影作品的背景颜色
    如何用PS把数码拍摄的荷花照片制作成中国风的效果
    PS 抠人像如何抠得干净?
    如何用 Ps 制作毛玻璃穿透效果?
    化装品经过这样PS包装,身价立马翻10倍
    有哪些漂亮的中国风 LOGO 设计?
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5699856.html
Copyright © 2011-2022 走看看