Mybatis框架–优化过程

0. 原代码预览

简单实现在数据库中插入数据

public void testInsert() throws IOException {
        //获取核心配置文件的输入流
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //获取SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
        //获取sql的回话对象sqlSession,是Mybatis提供的操作数据库的对象
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //获取UserMapper的代理实现类对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //调用mapper接口中的方法,实现添加用户信息的功能
        int result = mapper.insertUser();
        System.out.println("结果:"+result);

        //提交事务
        sqlSession.commit();

        //关闭sqlSession对象
        sqlSession.close();
    }
  • SqlSession:代表Java程序和数据库之间的会话。(HttpSession是Java程序和浏览器之间的会话)
  • SqlSessionFactory:是”生产”SqlSession的”工厂”。

1. 简化代码

根据两个一致性,可以将 获取UserMapper的代理实现类对象调用mapper接口中的方法两部分代码写为:

//例如我的代码:
int result = sqlSession.insert("com.atguigu.mybatis.insertUser");//参数是:全类名+方法名。也就是映射文件中sql的id位置

2. 自动提交sql事务

每次都需要手动提交SQL事务 sqlSession.commit()。可以在 获取sql的回话对象sqlSession的代码: sqlSessionFactory.openSession()加一个参数:

SqlSession sqlSession = sqlSessionFactory.openSession(true);

3. 加入log4j日志功能

  • 在pom.xml中加入依赖

    log4j
    log4j
    1.2.12

  • 加入log4j的配置文件

    log4j的配置文件名必须为log4j.xml,存放的位置是src/main/resources目录下


Mybatis框架--优化过程

Original: https://www.cnblogs.com/tianaqiang/p/16599371.html
Author: 就是搞笑啊
Title: Mybatis框架–优化过程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609808/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 根据表结构自动生成JavaBean,史上最强最专业的表结构转JavaBean的工具(第10版)

    第10版更新震撼发布,效率性能大提升,功能更加强大,速度过来围观,这次版本更新如下:1、新增数据库连接池并可以手动配置,提升数据库连接的使用效率。2、新增多线程并发处理并可以手动配…

    Java 2023年6月9日
    0104
  • navicat连接远程数据库,mysql workbench导出数据表

    navicat连接远程数据库: mysql workbench导出数据表: posted @2022-09-04 16:28 2337 Views(17 ) Comments() …

    Java 2023年6月6日
    0122
  • TCP/IP详解 读书笔记:TCP:传输控制协议

    TCP的服务 TCP为应用层提供一种面向连接的、可靠的字节流服务。一个TCP连接中,仅有两方进行彼此通信,所以广播和多播不能用于TCP。TCP通过以下方式提供可靠性: 应用数据被切…

    Java 2023年6月7日
    091
  • Java bean与xml 互转(对象转xml、xml转对象)

    日常吐槽: 好久都没怎么分享自已了…… ╮(╯▽╰)╭,最近有个需求,需要把 bean对象 转成 xml 文件,然后 xml 文件 转成对象 ( 生成 与 …

    Java 2023年5月29日
    0110
  • 医疗知识图谱的构建和应用

    医疗知识图谱是实现智慧医疗的基石,有望带来更高效精准的医疗服务;然而,现有知识图谱构建技术在医学领域中普遍存在效率低、限制多、拓展性差等问题。 知识应用 1. 语义全文检索 基于知…

    Java 2023年5月29日
    067
  • 正反向隔离装置

    正反向隔离装置是做网络隔离,数据通过固定格式的文本进行传输,这里两台服务器之间的数据通过mqtt进行传输,所以使用脚本接受mqtt的json数据,然后转为固定格式的文本,在通过隔离…

    Java 2023年6月16日
    084
  • Git基础学习

    Git 版本控制 版本控制的作用 常用的版本控制工具 版本控制分类 本地版本控制RCS 集中版本控制SVN 分布式版本控制Git Git历史 Git环境配置 Git配置 设置用户名…

    Java 2023年6月16日
    0110
  • Java学习-079-多线程12:使用 synchronized 同步方法解决多线程资源同步问题

    语法示例: 源代码示例如下所示: 测试方法源代码如下所示: 程序执行后输出结果如下所示: [售票窗口 5] INFO com.fanfengping.demo.Demo05Sale…

    Java 2023年5月29日
    092
  • Dubbo

    远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及”请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远…

    Java 2023年6月8日
    087
  • Hexo博客系列(三)-将Hexo v3.x个人博客发布到GitLab Pages

    【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的个…

    Java 2023年6月6日
    0118
  • CountDownLatch在多线程统计另一个线程的动向

    CountDownLatch 在 CountDownLatch类里面有两个方法一个是await()字面意思是等待的一次,他和sleep()方法的区别就是sellp()会自己醒过来,…

    Java 2023年6月7日
    0146
  • 技能篇:关于缓存数据的一致性探讨

    为了更快响应请求,减少不必要的查询,加速数据的处理,数据缓存是我们日常开发绕不过去的环节 关注公众号,一起交流,微信搜一搜: 潜行前行 缓存的意义 数据的保存,离不开磁盘或者内存的…

    Java 2023年6月5日
    087
  • 消息中间件:rabbitmq安装

    转自:https://blog.csdn.net/qq_27384769/article/details/79465954 1、下载Erlangwget http://erlang…

    Java 2023年5月30日
    074
  • maven工程servlet实例之指定web资源包以及导入项目依赖的jar包以及jar包冲突解决

    maven工程servlet实例之指定web资源包 在webapp包下可以直接创建jsp文件 ,但是在java包下我们不可以直接创建jsp文件。 如果想要在java包下创建jsp文…

    Java 2023年6月6日
    0101
  • JVM面试题(已归类)

    一年一度的面试高峰期又来了,技术学习群的很多朋友问我有没有关于JVM基础面试题,网上各种面试题没有分类很混乱,无法系统性参考学习。 于是,我就把之前整理的以及我面试过的真题和答案都…

    Java 2023年6月6日
    0111
  • OptaPlanner实用技术-批量规划和实时规划(1)

    在日常的规划应用中,无论是APS,VRP还是排班场景,有两个极其常见的需求,分别是批量规划和实时规划。下面我们对这两种情况作更深入探讨。 顾名思义,该功能是指规划程序可批量地、且行…

    Java 2023年6月16日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球