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