時(shí)間:2023-09-10 23:24:01 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-09-10 23:24:01 來源:網(wǎng)站運(yùn)營(yíng)
MyBatis三劍客:今天在本站上有人提問MyBatis三劍客是什么?于是乎心血來潮寫了這篇MyBatis三劍客來跟大家分享一下。網(wǎng)頁(yè)三劍客,是一套強(qiáng)大的網(wǎng)頁(yè)編輯工具,最初是由Macromedia公司開發(fā)出來的。由Dreamweaver,F(xiàn)ireworks,F(xiàn)lash三個(gè)軟件組成,俗稱網(wǎng)頁(yè)三劍客。所謂XXX三劍客,意思就是某三個(gè)東西組合起來,會(huì)使得一款工具發(fā)揮其所未有的威力,最直接體現(xiàn)就是降低開發(fā)難度,提高開發(fā)效率。而MyBatis的三劍客是MyBatis-generator、MyBatis-plugin、MyBaits-pageHelper。
--generator:用于快速生成xml文件、注釋、實(shí)體類等等。
--plugin:能快速定位接口對(duì)應(yīng)的sql。
--pageHelper:是一款分頁(yè)插件。
[1] insert基本可以滿足絕大多數(shù)場(chǎng)景下的開發(fā)。不足之處就是只能生成單表的代碼,如果需要關(guān)聯(lián)多張表,還需要開發(fā)者我們對(duì)代碼進(jìn)行調(diào)整優(yōu)化。此外開發(fā)者也可在generator的基礎(chǔ)上進(jìn)行二次開發(fā),使得逆向一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多成為可能,而不再是幻想。
[2] update by primary key
[3] update by example (using a dynamic where clause)
[4] delete by primary key
[5] delete by example (using a dynamic where clause)
[6] select by primary key
[7] select by example (using a dynamic where clause)
[8] count by example
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version></dependency>
<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <!-- mybatis用于生成代碼的配置文件 --> <verbose>true</verbose> <overwrite>true</overwrite> </configuration></plugin>
<?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"><!-- generator配置 --><generatorConfiguration> <!-- generator需要數(shù)據(jù)庫(kù)驅(qū)動(dòng)才能逆向代碼,因此需要配置一個(gè)本地的數(shù)據(jù)庫(kù)驅(qū)動(dòng)包 --> <classPathEntry location="C:/software/mysql-connector-java-5.1.6.jar"/> <context id="mysql" targetRuntime="MyBatis3"> <!-- generator默認(rèn)會(huì)將逆向代碼追加到已有的xml文件中,但我們希望的是重寫 --> <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin> <!-- generator默認(rèn)會(huì)對(duì)逆向代碼添加注釋,為了代碼更加簡(jiǎn)潔,我們希望去掉注釋 --> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 配置數(shù)據(jù)庫(kù)連接池 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db_name?serverTimezone=UTC" userId="username" password="password"> </jdbcConnection> <!-- java類型處理器 --> <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- model創(chuàng)建器 --> <javaModelGenerator targetPackage="XXX" targetProject="XXX"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成SQL map的XML文件創(chuàng)建器 --> <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- Mapper接口處理器 --> <javaClientGenerator targetPackage="org.cjw.dao" type="XMLMAPPER" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 配置需要逆向的表(一個(gè)或者多個(gè)) --> <table tableName="table_name" domainObjectName="model_name" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"/> </context></generatorConfiguration>
點(diǎn)擊settings --> Plugins --> Marketplace --> 搜索Free MyBatis plugin --> install --> restart IDE。安裝完成之后,打開mapper文件,會(huì)在左側(cè)出現(xiàn)綠色箭頭:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version></dependency>
//[pageNum, pageSize] 頁(yè)碼 每頁(yè)顯示數(shù)量PageHelper.startPage(curPage,pageSize);PageInfo<Order> pageInfo = new PageInfo<>(orderMapper.findAll());
在需要執(zhí)行查詢之前,這是分頁(yè)數(shù)據(jù)(curPage&pageSize)。會(huì)返回一個(gè)PageInfo對(duì)象,包含了分頁(yè)查詢的所以信息數(shù)據(jù),如下:面試官問你會(huì)不會(huì)JPA,你說你只會(huì)MyBatis,面試官會(huì)覺得你對(duì)前沿技術(shù)、技術(shù)發(fā)展趨勢(shì)不敏感,感覺你只是停留在使用層面上。如果覺得有用
面試官問你會(huì)不會(huì)MyBatis,你說你只會(huì)JPA,面試官會(huì)覺得你對(duì)當(dāng)前國(guó)內(nèi)的形勢(shì)不了解,甚至?xí)岩赡愕拈_發(fā)經(jīng)驗(yàn)。
所以本人認(rèn)為的回答應(yīng)該是:在過去開發(fā)的項(xiàng)目中用的都是MyBatis,但是就我對(duì)持久層框架的認(rèn)識(shí)和了解來看,我覺得未來的發(fā)展趨勢(shì)應(yīng)該是JPA(嗶哩吧哩的說一下JPA的好處),就目前spring家族的新生兒子Spring-data-JPA,在不斷的茁壯成長(zhǎng),也可以看出點(diǎn)發(fā)展方向。
關(guān)鍵詞:
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。