MyBatis 總結&模板
阿新 • • 發佈:2020-09-11
簡述
從8月2日到昨天9月10日,歷時一個多月,共計30篇部落格,把MyBatis的基礎學完了,肥腸蘇福~
本篇部落格會對mybatis的知識做一個自我總結,並附上各個配置檔案的程式碼,方便以後專案的構建。
知識總結
首先,MyBatis是一個持久層框架,直接和資料庫互動,通過註解或者xml配置的方法,可以大大減少開發者的工作量,mybatis使用了orm的思想——object relational mapping的思想,使資料庫中和表和java裡的實體類相對應,通過操作實體類實現互動資料庫,使開發者只需關注於sql語句,不用關心jdbc的連線與執行。
MyBatis的核心類是sqlsession類,該類通過getMapper方法生成資料庫表的代理物件,通過代理物件的方法實現CRUD。
MyBatis的一級快取是sqlsession裡的資料區域,查詢的結果會存放在該快取中,注意一級快取的區域是一個sqlsession。
MyBatis的二級快取是sqlsessionfactory裡的資料區域,相對與一級快取來說,實現了不同的sqlsession之間快取的共享。
模板
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocationpom.xml="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.itheima</groupId> <artifactId>day02_eesy_01mybatisCRUD</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <!-- 配置jdk --> <properties> <maven.compiler.source>1.11</maven.compiler.source> <maven.compiler.target>1.11</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies> </project>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- mybatis的主配置檔案 --> <configuration> <!-- 使用typeAliases配置別名,它只能配置domain中的類名 --> <typeAliases> <!-- typeAlias用於配置別名 type屬性指定的是實體類全限定類名,alias屬性指定別名,當指定了別名就不再區分大小寫--> <!--<typeAlias type="com.itheima.domain.User" alias="user"></typeAlias> --> <!-- 用於指定要配置別名的包,當指定後,該包下的實體類都會註冊別名,類名就是別名,不再區分大小寫 --> <package name="com.itheima.domain"/> </typeAliases> <!-- 配置環境 --> <environments default="mysql"> <!-- 配置mysql的環境 --> <environment id="mysql"> <!-- 配置事務型別 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置資料來源,也叫連線池,有三個取值 --> <dataSource type="POOLED"> <!-- 配置連線資料庫的4個基本資訊 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 指定對映配置檔案的位置,指的是每個dao獨立的配置檔案 --> <mappers> <!-- <mapper resource="com/itheima/dao/IUserDao.xml"/> --> <!-- 用於指定dao介面所在的包,當指定完成之後,就不需要再寫mapper以及resource或者class --> <package name="com/itheima/dao"></package> </mappers> </configuration>SqlMapConfig.xml
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
log4j.properties(非xml檔案)