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日志 --> <dependency> 	<groupId>log4j</groupId> 	<artifactId>log4j</artifactId> 	<version>1.2.12</version> </dependency> 
  • 加入log4j的配置文件

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

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">     <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">         <param name="Encoding" value="UTF-8" />         <layout class="org.apache.log4j.PatternLayout">             <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) n" />         </layout>     </appender>     <logger name="java.sql">         <level value="debug" />     </logger>     <logger name="org.apache.ibatis">         <level value="info" />     </logger>     <root>         <level value="debug" />         <appender-ref ref="STDOUT" />     </root> </log4j:configuration> 

    重新运行代码,查看日志功能:

    Mybatis框架--优化过程

发表评论

相关文章