mybatis框架簡介和簡單原理:java
mybatis原本是apache的一個開源的項目,後來遷移到了google,而且更名爲mybatis。mysql
mybatis框架優勢:程序員
一、mybatis是最簡單的持久化框架,和hibanate相比容易學習。sql
二、mybatis框架比較靈活,SQL語句直接寫在XML文檔裏面,也就是從程序代碼中分離出來了,下降了程序的耦合性。數據庫
三、提供映射標籤,支持對象與數據庫的ORM字段關係映射。(要理解)apache
四、提供XML標籤,支持編寫動態SQL語句。(要理解)緩存
mybatis框架缺點:mybatis
一、SQL語句編寫工做量比較大,尤爲是多表關聯的時候,這個對開發人員的SQL功底也算是一種考驗吧。oracle
二、二級緩存機制不算是很完善。(要理解)app
3、本人認爲,mybatis框架的優勢,也算是mybatis框架的缺點,爲何要這麼說呢,mybatis框架的優勢就是靈活、方便修改SQL語句,而反過來更多的是依賴於程序員對SQL語句的使用水平上了。這也是仁者見仁智者見智,至少我是這麼認爲的。
mybatis框架適用場合:
一、適用於那種需求變化相對較多的項目。
mybatis框架簡單的原理:
原理詳解:
MyBatis應用程序根據XML配置文件建立SqlSessionFactory,SqlSessionFactory在根據配置,配置來源於兩個地方,一處是配置文件,一處是Java代碼的註解,獲取一個SqlSession。SqlSession包含了執行sql所須要的全部方法,能夠經過SqlSession實例直接運行映射的sql語句,完成對數據的增刪改查和事務提交等,用完以後關閉SqlSession。
Config.xml配置文件:
未完待續。。。。
主要概述:
主要就是GeneratorSqlmap.java和generatorConfig.xml這兩個文件。
GeneratorSqlmap.java文件是負責啓動逆向工程的,裏面的代碼不須要記,直接去官網粘貼複製就好。
generatorConfig.xml是主要的配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自動生成的註釋 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--數據庫鏈接的信息:驅動類、鏈接地址、用戶名、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybaits" userId="root" password="root"> </jdbcConnection> <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg" password="yycg"> </jdbcConnection> --> <!-- 默認false,把JDBC DECIMAL 和 NUMERIC 類型解析爲 Integer,爲 true時把JDBC DECIMAL 和 NUMERIC 類型解析爲java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetProject:生成PO類的位置 --> <javaModelGenerator targetPackage="cn.itcast.ssm.po" targetProject=".\src"> <!-- enableSubPackages:是否讓schema做爲包的後綴 --> <property name="enableSubPackages" value="false" /> <!-- 從數據庫返回的值被清理先後的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="cn.itcast.ssm.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema做爲包的後綴 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.itcast.ssm.mapper" targetProject=".\src"> <!-- enableSubPackages:是否讓schema做爲包的後綴 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定數據庫表 --> <table tableName="items"></table> <table tableName="orders"></table> <table tableName="orderdetail"></table> <table tableName="user"></table> <!-- <table schema="" tableName="sys_user"></table> <table schema="" tableName="sys_role"></table> <table schema="" tableName="sys_permission"></table> <table schema="" tableName="sys_user_role"></table> <table schema="" tableName="sys_role_permission"></table> --> <!-- 有些表的字段須要指定java類型 <table schema="" tableName=""> <columnOverride column="" javaType="" /> </table> --> </context> </generatorConfiguration>