mybatis使用map插入数据和Mybatis的核心配置文件LOG4J
mybatis使用map插入數據
- UserMapper.java包中寫入
Usermapper.xml
<insert id="addUser2" parameterType="map">insert into user(id,name,pwd) value(#{userID},#{userName},#{password});</insert>- 測試
- 插入成功
Mybatis核心配置文件
MyBatis 的配置文件包含了會深深影響 MyBatis 行為的設置和屬性信息。
配置文檔的頂層結構如下:
Mybatis 可以配置成適應多種環境
不過要記住:盡管可以配置多個環境,但是sqlSessionFactory實力只能選擇一種環境。
會使用配置多套運行環境。
Mybatis默認的事務就是JDBC,連接池:POOLED
優化屬性
編寫一個配置文件
db.properties
driver = com.mysql.jdbc.Driver url = jdbc:mysql://localhost:3306/mybatis?useSSL = false&useUnicode = true&characterEncoding =UTF-8 root = root password = root然后再核心配置文件中映入
<properties resource="db.properties"> </properties>可以引入外部字段
也可以再配置文件中添加字段
如果兩個文件有同一個字段,優先使用外部文件
類型別名(typeAliases)
類型別名給java類型設置一個很短的名字
<typeAliases><typeAlias type="com.lin.pojo.User" alias="user"/> </typeAliases>指定包別名
可以指定包名掃描實體類的包。
他的默認別名就為這個類的類名首字母小寫
在實體類比較少得時候可以使用第一種,再實體類比較多得時候就推薦使用第二種
第一種可以自定義名字
第二種可以在實體類增加注解來實現自定義名字
設置(settings)
其他配置
typeAliases(類型別名) typeHandlers(類型處理器) objectFactory(對象工廠) plugins(插件)映射器(Mapper)
MapperRegistry注冊綁定mapper文件
- 方式一
- 方式二 使用class文件綁定
方式二的注意事項
接口和Mapper配置文件必須同名
接口和Mapper配置文件必須再同一個包下
- 方式三 使用掃描包注入綁定
注意事項
- 接口和Mapper配置文件必須同名
- 接口和Mapper配置文件必須再同一個包下
推薦使用 方式一
生命周期和作用域
生命周期和作用域使用是非常重要的,因為錯誤的使用會導致非常嚴重的并發問題
SqlSessionFactoryBuilder
- 一旦創建了SqlSessionFactory,就不需要他了
- 局部變量
SqlSessionFactory
- 數據庫連接池
- SqlSessionFactory 一旦被創建就應該在應用的運行期間一直存在,沒有任何理由丟棄它或重新創建另一個實例。
- 因此 SqlSessionFactory 的最佳作用域是應用作用域
- 最簡單的就是使用單例模式或者靜態單例模式。
SqlSession
- 連接到連接池的一個請求
- 每個線程都應該有它自己的 SqlSession 實例。SqlSession 的實例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。
- 用完趕緊關閉,否則資源唄占用
RestultMap結果集映射
<mapper namespace="com.lin.Dao.UserMapper"><resultMap id="UserMap" type="user"><result column="pwd" property="password"/></resultMap><select id="getUserList" resultType="user" resultMap="UserMap">select * from mybatis.user</select></mapper>- resultMap 元素是 MyBatis 中最重要最強大的元素
- ResultMap 的設計思想是,對簡單的語句做到零配置,對于復雜一點的語句,只需要描述語句之間的關系就行了
日志
日志工廠
如果一個數據庫操作出現了異常,我們需要排錯,日志就是最好的助手
曾經使用 sout debug
現在 日志工廠
SLF4J、
LOG4J、
LOG4J2、
JDK_LOGGING、
COMMONS_LOGGING、
STDOUT_LOGGING、
NO_LOGGING,
在mybatis中具體使用哪一個日志輸入,在設置中設定
STDOUT_LOGGING標準日志輸入
在mybatis的核心配置文件中配置日志
LOG4j
Log4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件
我們也可以控制每一條日志的輸出格式
通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程,而不需要修改應用的代碼。
log4j.propereties
#將等級為DEBUG的日志信息輸出到console和file這兩個目的地,console和file的定義在下面的代碼 log4j.rootLogger=DEBUG,console,file#控制臺輸出的相關設置 log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%c]-%m%n#文件輸出的相關設置 log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File=./log/lin.log log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n#日志輸出級別 log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG配置log4j為日志的實現
<settings><setting name="logImpl" value="LOG4J"/></settings>在要使用log4j的包里導入import org.apache.Log4j.Logger;
日志對象參數為當前使用的類
日志的級別
public void log4j(){logger.info("info");logger.debug("debug");logger.error("error");}輸出日志記錄
總結
以上是生活随笔為你收集整理的mybatis使用map插入数据和Mybatis的核心配置文件LOG4J的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品经理学大数据——什么是大数据?(1)
- 下一篇: FPGA ——DDR基础概念详解