0. 原代碼預覽 簡單實現在資料庫中插入數據 public void testInsert() throws IOException { //獲取核心配置文件的輸入流 InputStream is = Resources.getResourceAsStream("mybatis-config.xml ...
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>
重新運行代碼,查看日誌功能: