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" > <param name="Encoding" value="https://www.cnblogs.com/tianaqiang/archive/2022/08/18/UTF-8" /> <layout > <param name="ConversionPattern" value="https://www.cnblogs.com/tianaqiang/archive/2022/08/18/%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) /n" /> </layout> </appender> <logger name="java.sql"> <level value="https://www.cnblogs.com/tianaqiang/archive/2022/08/18/debug" /> </logger> <logger name="org.apache.ibatis"> <level value="https://www.cnblogs.com/tianaqiang/archive/2022/08/18/info" /> </logger> <root> <level value="https://www.cnblogs.com/tianaqiang/archive/2022/08/18/debug" /> <appender-ref ref="STDOUT" /> </root> </log4j:configuration>重新運行代碼,查看日志功能:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/502214.html
標籤:其他
