Mybatis框架--优化过程

打印 上一主题 下一主题

主题 894|帖子 894|积分 2682

0. 原代码预览

简单实现在数据库中插入数据
  1. public void testInsert() throws IOException {
  2.         //获取核心配置文件的输入流
  3.         InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
  4.         //获取SqlSessionFactoryBuilder对象
  5.         SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  6.         //获取SqlSessionFactory对象
  7.         SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
  8.         //获取sql的回话对象sqlSession,是Mybatis提供的操作数据库的对象
  9.         SqlSession sqlSession = sqlSessionFactory.openSession();
  10.    
  11.             //获取UserMapper的代理实现类对象
  12.         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
  13.         //调用mapper接口中的方法,实现添加用户信息的功能
  14.         int result = mapper.insertUser();
  15.         System.out.println("结果:"+result);
  16.       
  17.         //提交事务
  18.         sqlSession.commit();
  19.    
  20.         //关闭sqlSession对象
  21.         sqlSession.close();
  22.     }
复制代码


  • SqlSession:代表Java程序和数据库之间的会话。(HttpSession是Java程序和浏览器之间的会话)
  • SqlSessionFactory:是“生产”SqlSession的“工厂”。
1. 简化代码

根据两个一致性,可以将获取UserMapper的代理实现类对象和调用mapper接口中的方法两部分代码写为:
  1. //例如我的代码:
  2. int result = sqlSession.insert("com.atguigu.mybatis.insertUser");//参数是:全类名+方法名。也就是映射文件中sql的id位置
复制代码
2. 自动提交sql事务

每次都需要手动提交SQL事务sqlSession.commit()。可以在获取sql的回话对象sqlSession的代码:sqlSessionFactory.openSession()加一个参数:
  1. SqlSession sqlSession = sqlSessionFactory.openSession(true);
复制代码
3. 加入log4j日志功能


  • 在pom.xml中加入依赖
    1. <dependency>
    2.         <groupId>log4j</groupId>
    3.         <artifactId>log4j</artifactId>
    4.         <version>1.2.12</version>
    5. </dependency>
    复制代码
  • 加入log4j的配置文件
    log4j的配置文件名必须为log4j.xml,存放的位置是src/main/resources目录下
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    4.     <appender name="STDOUT" >
    5.         <param name="Encoding" value="UTF-8" />
    6.         <layout >
    7.             <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS}
    8. %m (%F:%L) \n" />
    9.         </layout>
    10.     </appender>
    11.     <logger name="java.sql">
    12.         <level value="debug" />
    13.     </logger>
    14.     <logger name="org.apache.ibatis">
    15.         <level value="info" />
    16.     </logger>
    17.     <root>
    18.         <level value="debug" />
    19.         <appender-ref ref="STDOUT" />
    20.     </root>
    21. </log4j:configuration>
    复制代码
    重新运行代码,查看日志功能:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表