MyBatis -01- 初識 MyBatis + MyBatis 環境搭建
MyBatis 本是 apache 的一個開源專案 iBatis(iBATIS = "internet" + "abatis"), 2010 年這個專案由 apache software foundation 遷移到了google code,並且改名為MyBatis 。2013年11月遷移到 Github
- MyBatis 是 JAVA 一款優秀的 持久層框架,它支援定製化 SQL、儲存過程以及高階對映。
- MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。
- MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java物件) 對映成資料庫中的記錄
說到 持久層框架,不得不提到 Hibernate 它太有名了,MyBatis 和 Hibernate 有什麼區別呢?就是 Hibernate 比較重,而 MyBatista 比較輕,輕就是 便於使用,方便學習,方便開發與維護
MyBatis 環境搭建
(一)從 Github 下載最新版 MyBatis zip 包
下載地址:https://github.com/mybatis/mybatis-3/releases
官網下載超級慢,博主幫你準備好了 3.4.6 目前最新版:
連結:https://pan.baidu.com/s/1MBriYDUiGTeHNo-hGlUxKA 密碼:g6vw
下載後,裡面有 jar 包,pdf 幫助文件,要使用 MyBatis, 只需將 mybatis-3.4.6.jar(目前最新是 3.4.6 版本) 檔案置於 classpath 中即可。
lib 目錄中有一些輔助包,最好全部加到專案中
或者使用 Maven 管理工具
將下面的 dependency 程式碼置於 pom.xml 檔案中:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
(二)下載 mysql-connector-java.jar 包
mysql-connector-java.jar 版本有很多,但是不是所有版本都可以用,這個是根據 MySQL 版本和 JDK 版本確定的,不然很容易出問題,都不知道哪裡錯了。
常見的:
MySQL8.0 對應 5.1.46 的下載: http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.46/mysql-connector-java-5.1.46.jar
MySQL6.0 對應 5.1.10 的下載: http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.10/mysql-connector-java-5.1.10.jar
(三)導包到專案
新建目錄 lib 來存放 jar 包,然後選中 jar 包,右鍵 【Bulid Path】 >【Add to Bulid Path】
(四)配置日誌
為什麼要配置日誌?
使用過 Hibernate 的應該知道 Hibernate 中有一項功能叫 SQl 語句的輸出,這項功能很重要,當我們在除錯程式的時候需要通過輸出的 SQL 語句看一下 Hibernate 的執行狀況,MyBatis 也提供這樣的功能,只不過,它是通過日誌來輸出。
我們需要將 log4j.properties 配置檔案拷貝到 src 目錄下
你也可以直接下載我 log4j.properties 檔案的:https://pan.baidu.com/s/18FZpq1dwWrOWrkMDuXJ3dA 密碼:lh7t
log4j.properties 檔案原始碼參考:
### 配置根 ###
log4j.rootLogger = debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE
### 設定輸出sql的級別,其中logger後面的內容全部為jar包中所包含的包名 ###
log4j.logger.org.apache=dubug
log4j.logger.java.sql.Connection=dubug
log4j.logger.java.sql.Statement=dubug
log4j.logger.java.sql.PreparedStatement=dubug
log4j.logger.java.sql.ResultSet=dubug
### 配置輸出到控制檯 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### 配置輸出到檔案 ###
log4j.appender.fileAppender = org.apache.log4j.FileAppender
log4j.appender.fileAppender.File = logs/log.log
log4j.appender.fileAppender.Append = true
log4j.appender.fileAppender.Threshold = DEBUG
log4j.appender.fileAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 配置輸出到檔案,並且每天都建立一個檔案 ###
log4j.appender.dailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyRollingFile.File = logs/log.log
log4j.appender.dailyRollingFile.Append = true
log4j.appender.dailyRollingFile.Threshold = DEBUG
log4j.appender.dailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.dailyRollingFile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 配置輸出到檔案,且大小到達指定尺寸的時候產生一個新的檔案 ###
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
### 配置輸出到郵件 ###
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=chenyl@yeqiangwei.com
log4j.appender.MAIL.SMTPHost=mail.hollycrm.com
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=chenyl@yeqiangwei.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
### 配置輸出到資料庫 ###
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=SampleMessages.log4j
log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'
log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout