mybatis 大于_酸爽!IDEA 中這么玩 MyBatis,讓編碼速度飛起!

995805807d36edeee114b97f86dbbeca.png

作者:Orson

cnblogs.com/java-class/p/6237564.html

  • 1. 搭建 MyBatis Generator 插件環境
    • a. 添加插件依賴 pom.xml
    • b. 配置文件 generatorConfig.xml
    • c. 數據庫配置文件 jdbc.properties
    • d. 配置插件啟動項
  • 2.項目實戰
    • a. 比如在一個項目 我們要刪除某個小組下某個用戶的信息
    • b. 根據小組ID(非主鍵 更新小組信息)
    • c. 各種查詢

IDEA 逆向 MyBatis 工程時,不像支持 Hibernate 那樣有自帶插件,需要集成第三方的 MyBatis Generator。

MyBatis Generator的詳細介紹 http://mybatis.github.io/generator/index.html

本篇博客圖解 MyBatis Generator 的使用過程,并結合實戰說明逆向工程的使用方式。

1. 搭建 MyBatis Generator 插件環境

a. 添加插件依賴 pom.xml

??????????
????????????<plugin>
????????????????<groupId>org.mybatis.generatorgroupId>
????????????????<artifactId>mybatis-generator-maven-pluginartifactId>
????????????????<version>1.3.2version>
????????????????<configuration>
????????????????????<configurationFile>src/main/resources/generatorConfig.xmlconfigurationFile>
????????????????????<verbose>trueverbose>
????????????????????<overwrite>trueoverwrite>
????????????????configuration>
????????????????<executions>
????????????????????<execution>
????????????????????????<id>Generate?MyBatis?Artifactsid>
????????????????????execution>
????????????????executions>
????????????????<dependencies>
????????????????????<dependency>
????????????????????????<groupId>org.mybatis.generatorgroupId>
????????????????????????<artifactId>mybatis-generator-coreartifactId>
????????????????????????<version>1.3.2version>
????????????????????dependency>
????????????????dependencies>
????????????plugin>

b. 配置文件 generatorConfig.xml

<?xml ?version="1.0"?encoding="UTF-8"?>
generatorConfiguration
????????PUBLIC?"-//mybatis.org//DTD?MyBatis?Generator?Configuration?1.0//EN"
????????"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
????<properties?resource="jdbc.properties"/>
????<classPathEntry?location="${jdbc_driverLocation}"/>?

????<context?id="default"?targetRuntime="MyBatis3">
????????
????????<commentGenerator>
????????????<property?name="suppressDate"?value="true"/>
????????????<property?name="suppressAllComments"?value="true"/>
????????commentGenerator>

????????
????????<jdbcConnectiondriverClass="${jdbc_driverClass}"connectionURL="${jdbc_url}"userId="${jdbc_user}"password="${jdbc_pwd}">
????????jdbcConnection>

????????
????????<javaTypeResolver><property?name="forceBigDecimals"?value="false"/>javaTypeResolver>

????????
????????<javaModelGenerator?targetPackage="com.rambo.sdm.dao.pojo"?targetProject="src/main/java">
????????????
????????????<property?name="enableSubPackages"?value="false"/>
????????????
????????????<property?name="constructorBased"?value="true"/>
????????????
????????????<property?name="trimStrings"?value="true"/>
????????????
????????????<property?name="immutable"?value="false"/>
????????javaModelGenerator>

????????
????????<sqlMapGenerator?targetPackage="com.rambo.sdm.dao.mapper"?targetProject="src/main/java">
????????????<property?name="enableSubPackages"?value="false"/>
????????sqlMapGenerator>

????????
????????<javaClientGenerator?targetPackage="com.rambo.sdm.dao.inter"?targetProject="src/main/java"?type="XMLMAPPER">
????????????<property?name="enableSubPackages"?value="true"/>
????????javaClientGenerator>

????????<table?tableName="user"?domainObjectName="UserPO">
????????????<generatedKey?column="uuid"?sqlStatement="SELECT?REPLACE(UUID(),'-','')?UUID?FROM?DUAL"/>
????????table>
????context>
generatorConfiguration>

c. 數據庫配置文件 jdbc.properties

jdbc_driverLocation=D:\\Program Files\\Repository\\mysql\\mysql-connector-java\\5.1.38\\mysql-connector-java-5.1.38.jar
jdbc_driverClass=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf-8
jdbc_user=root
jdbc_pwd=123456
validationQuery = select 1

d. 配置插件啟動項

f83c3fa214f432591cde17d85035fa68.png

2.項目實戰

User類就是普通的實體類,定義了數據庫對應的字段,以及set/get方法

Mybatis 引入了 Example 類,用來封裝數據庫查詢條件。

a. 比如在一個項目 我們要刪除某個小組下某個用戶的信息

????public?int?deleteUserApplyInfo(long?user_id,long?team_id){
????????StudyTeamUserApplyInfoExample?ue?=?new?StudyTeamUserApplyInfoExample();
????????ue.createCriteria().andUserIdEqualTo(new?BigDecimal(user_id)).andTeamIdEqualTo(new?BigDecimal(team_id));
????????return?studyTeamUserApplyInfoDAO.deleteByExample(ue);
????}

b. 根據小組ID(非主鍵 更新小組信息)

???public?int?updateStudyTeamInfo(StudyTeamInfo?st){
????????StudyTeamInfoExample?ste?=?new?StudyTeamInfoExample();
????????ste.createCriteria().andTeamIdEqualTo(st.getTeamId());
????????return?studyTeamInfoDAO.updateByExampleSelective(st,ste);
????}

c. 各種查詢

(1)模糊查詢并且排序

public?List?getStudyTeamInfoByName(String?team_name){
????????StudyTeamInfoExample?se?=?new?StudyTeamInfoExample();
????????se.createCriteria().andTeamNameLike("%"+team_name+"%").andEnableEqualTo((short)1);
????????se.setOrderByClause("team_score?desc");
????????List?ls?=?studyTeamInfoDAO.selectByExample(se);if(ls!=null&&ls.size()>0){return?ls;
????????}return?null;
????}

(2)大于等于某個分數 并且小于某個分數的查詢

public?StudyTeamLevel?getStudyTeamLevel(long?score){
????????StudyTeamLevelExample?le?=?new?StudyTeamLevelExample();
????????le.createCriteria().andNeedScoreLessThanOrEqualTo(score).andUpScoreGreaterThan(score);
????????List?ls?=?studyTeamLevelDAO.selectByExample(le);if(ls!=null&&ls.size()>0){return?ls.get(0);

精彩推薦

一百期Java面試題匯總SpringBoot內容聚合IntelliJ IDEA內容聚合Mybatis內容聚合310ed0a39315e4d3db8cde5aa6800868.png

歡迎長按下圖關注公眾號后端技術精選

6f0a51d7d70ccafc9286843f041d52b3.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276684.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276684.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276684.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java的三種代理模式完整源碼分析

Java的三種代理模式&完整源碼分析 Java的三種代理模式&完整源碼分析 參考資料&#xff1a; 博客園-Java的三種代理模式 簡書-JDK動態代理-超詳細源碼分析 [博客園-WeakCache緩存的實現機制](https://www.cnblogs.com/liuyun1995/p/8144676.html) 靜態代理 靜態代理在使…

scatter函數_matplotlib.pyplot常用函數scatter講解大全(三)

前言這篇文章再來總結一個常用畫圖函數scatter-散點圖。參數常用參數示例import matplotlib.pyplot as plt import numpy as np#導入需要的包 datanp.random.multivariate_normal([0,1],[[1,0],[0,1]],200)#準備數據&#xff0c;二維正態分布plt.rcParams["axes.unicode_m…

如何徹底卸載MySQL

本文摘自&#xff1a;http://www.heiqu.com/show-64764-1.html 內容為&#xff1a; 由于安裝MySQL的時候&#xff0c;疏忽沒有選擇底層編碼方式&#xff0c;采用默認的ASCII的編碼格式&#xff0c;于是接二連三的中文轉換問題隨之而來&#xff0c;就想卸載了重新安裝MYSQL&…

vue-cli項目模板的一些思考

之前有個想法&#xff0c;就是要利用vue寫一套ui。然后當時也沒有搞清楚到底怎么寫。 幾經周轉吧&#xff0c;通過付費的方式在gitbook上面找到了答案。 找到答案之后再看我們正在開發的項目&#xff0c;看伙伴寫的代碼&#xff0c;突然發現完全可以按照寫ui組件庫的方式調整目…

flex基于svn協同開發

想做一個游戲&#xff0c;正好有人陪我做。于是想到用flex來協同開發。本來是想使用cvs&#xff0c;可是結果搗鼓了半天&#xff0c;也沒個結果——估計是最近沒怎么看電影&#xff0c;IQ降下來了。于是改用svn。 參考資料&#xff1a;http://www.flashmagazine.com/tutorials/…

cookie與session詳解

session與cookie是什么?session與cookie屬于一種會話控制技術.常用在身份識別&#xff0c;登錄驗證&#xff0c;數據傳輸等.舉個例子&#xff0c;就像我們去超市買東西結賬的時候&#xff0c;我們要拿出我們的會員卡才會獲取優惠.這時候&#xff0c;我們怎么識別這個會員卡真實…

c++萬能頭文件_初學Python,與C對比

?背景學了一學年的C的基礎&#xff0c;下學年開課Python&#xff0c;現在正在自學中...C也不是不學了&#xff0c;而是之前買了一本《CPrimer》在學校里&#xff0c;就準備先學一下Python&#xff0c;下學期利用自由時間接著學習C。這里分析了一下二者的優缺點&#xff0c;供大…

listen(int fd, int backlog)中的backlog含義

1. listen(int fd, int backlog)中的backlog不能限制連接數量??? http://bbs.chinaunix.net/viewthread.php?tid870564 backlog應該是未完成3次握手連接和已完成3次握手而未被accept的兩對列之和.不知道我說的對不? 如果要控制連接數量,是不是要自己編碼控制...下面的可以…

本地無法啟動MySQL服務,報的錯誤:1067,進程意外終止---解決

原文鏈接&#xff1a;http://blog.csdn.net/shenhonglei1234/article/details/5928873 在本地計算機無法啟動MYSQL服務錯誤1067進程意外終止 這種情況一般是my.ini文件配置出錯了 首先找到這個文件&#xff1a; 默認安裝路徑 C:/Program Files/MySQL/MySQL Server 5.1/my.ini …

一篇文章助你理解Python3中字符串編碼問題

前幾天給大家介紹了unicode編碼和utf-8編碼的理論知識&#xff0c;以及Python2中字符串編碼問題&#xff0c;沒來得及上車的小伙伴們可以戳這篇文章&#xff1a;淺談unicode編碼和utf-8編碼的關系和一篇文章助你理解Python2中字符串編碼問題。下面在Python3環境中進行代碼演示&…

Express框架開發知識點總結

express --viewpug myapp 以上語句在當前工作目錄中創建名為 myapp 的 Express 應用程序&#xff0c;采用的模板是jade。 以前還在糾結使用hbs模板引擎或者ejs模板&#xff0c;實際上只要將--view后面的pug換成hbs&#xff08;使用的是Handlebars模板引擎&#xff09;&#xff…

《高級軟件架構師講義》學習筆記5

第五章 設計模式與軟件架構設計 一、面向對象軟件架構設計思想 a) 面向對象范式 i. 面向對象范式的核心是“對象”的概念 ii. 所有的東西都聚焦于對象 iii. 圍繞對象-而非函數-組織代碼 b) 對象從不同視角觀察 i. 概念層&#xff1a;…

python 安裝xpath_Python網絡爬蟲(四)- XPath1.XPath2.XPath在python中的應用

目錄&#xff1a; 1.XPath XPath即為XML路徑語言&#xff08;XML Path Language&#xff09;&#xff0c;它是一種用來確定XML文檔中某部分位置的語言。它使用路徑表達式來選取 XML 文檔中的節點或節點集。節點是通過沿著路徑 (path) 或者步 (steps) 來選取的。 XPath語法 2.XP…

團隊升級

2019獨角獸企業重金招聘Python工程師標準>>> 轉載于:https://my.oschina.net/yulongblog/blog/2988702

設計模式簡介

深入理解面向對象 向下&#xff1a;深入理解三大面向對象機制 封裝&#xff0c;隱藏內部實現 繼承&#xff0c;復用現有代碼  多態&#xff0c;改寫對象行為 向上&#xff1a;深刻把握面向對象機制所帶來的抽象意義&#xff0c;理解如何使用這些機制來表達現實世界&#xff0c…

Css3: gradient背景漸變

Css3: gradient背景漸變 原文鏈接&#xff1a;http://kk073000.blog.163.com/blog/static/34826942012123111322691/ css3實現了背景漸變。 <gradient> [ <linear-gradient> | <radial-gradient> | <repeating-linear-gradient> | <repeating-r…

模板方法

重構的關鍵技法&#xff1a; 靜態 -> 動態 早綁定 -> 晚綁定 繼承 -> 組合 編譯時依賴 -> 運行時依賴 緊耦合 -> 松耦合 "組件協作"模式 現代軟件專業分工之后的第一個結果是“框架與應用程序的劃分”&#xff0c;“組件協作”模式通過晚期綁定&#…

聚類 python_python中實現k-means聚類算法詳解

算法優缺點&#xff1a; 優點&#xff1a;容易實現 缺點&#xff1a;可能收斂到局部最小值&#xff0c;在大規模數據集上收斂較慢 使用數據類型&#xff1a;數值型數據 算法思想 k-means算法實際上就是通過計算不同樣本間的距離來判斷他們的相近關系的&#xff0c;相近的就會放…

python筆試常見題

1、冒泡排序&#xff1a; 冒泡排序算是最基本的python算法了。也算python面試遇到問的最多的了。 如果是封裝成函數。代碼如下&#xff1a; 如果初始就一個字典。那么代碼為&#xff1a; 冒泡排序的本質就是兩兩比較。根據結果調換位置。最終達到一個排序的效果。 注&#xff1…

固定資產打開提示:上年度數據未結轉!

問題現象&#xff1a;固定資產打開提示&#xff1a;上年度數據未結轉&#xff01; 問題分析&#xff1a;服務器出問題后&#xff0c;數據庫UFSYSTEM丟失&#xff0c;重新建賬后年度數據覆蓋后出現的&#xff0c;那么問題應該出在UFSYSTEM庫UA_ACCOUNT_SUB表與年度庫Accinformat…