溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用mybatis怎么實(shí)現(xiàn)逆向生成

發(fā)布時(shí)間:2020-11-30 16:23:54 來源:億速云 閱讀:190 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章給大家分享的是有關(guān)使用mybatis怎么實(shí)現(xiàn)逆向生成,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

當(dāng)時(shí)用逆向生成后,實(shí)體類中的下劃線都被去掉,這時(shí)只需要在sqlmap.xml中加以下代碼即可。打開mybatis駝峰法則。

 <settings>
  <!-- 打印查詢語句 -->
  <setting name="logImpl" value="STDOUT_LOGGING" />
   <!-- 是否開啟自動(dòng)駝峰命名規(guī)則(camel case)映射,即從經(jīng)典數(shù)據(jù)庫列名 A_COLUMN 到經(jīng)典Java 屬性名 aColumn 的類似映射 -->
  <setting name="mapUnderscoreToCamelCase" value="true"/>
 </settings>

補(bǔ)充知識(shí):【Java】Iterator接口方法及 獨(dú)立類迭代器實(shí)現(xiàn)

接口實(shí)現(xiàn):

Iterator接口包含三個(gè)方法:hasNext、next、remove。

迭代器的位置不是在某一個(gè)元素上,而是在集合中第一個(gè)元素之前、兩個(gè)元素之間或最后一個(gè)元素之后。

public interface Iterator<T> {

 /**
  * Task:測(cè)定迭代器是否完成遍歷并越過數(shù)據(jù)集的最后一個(gè)元素
  * @return 迭代器若有下一個(gè)元素返回 true
  */
 public boolean hasNext();

 /**
  * Task:提取集合中當(dāng)前(下一個(gè))元素 并迭代前進(jìn)下一個(gè)位置
  * @return 迭代當(dāng)前元素的引用
  * @throws java.util.NoSuchElementException 若迭代已經(jīng)到頭,則 hasNext()為false
  */
 public T next();

 /**
  * Task:從迭代器刪除next()返回的下一個(gè)元素
  *  此后調(diào)用next()的行為將與刪除前一樣
  * Precondition:next()已被調(diào)用,remove()尚未被調(diào)用
  *  數(shù)據(jù)集在迭代期間 除調(diào)用本方法外未被修改
  * @throws IllegalStateException 若next()未被調(diào)用
  * @throws UnsupportedOperationException 若迭代器不允許刪除
  */
 public void remove();
}

獨(dú)立類迭代器實(shí)現(xiàn):

import java.util.ArrayList;
import java.util.NoSuchElementException;

/**
 * 獨(dú)立類迭代器
 * @param <T>
 */
public class SeparateIterator<T> implements Iterator<T> {
 private ArrayList<T> list;
 private int nextPosition; //next()返回最近元素的位置
 private boolean wasNextCalled; //需要?jiǎng)h除的

 public SeparateIterator(ArrayList<T> arrayList) {
  list=arrayList;
  nextPosition=0;   //用于跟蹤迭代到何處
  wasNextCalled=false;  //用于檢出是否首先調(diào)用了next()
 }

 @Override
 public boolean hasNext() {
  return nextPosition<list.size();
 }

 @Override
 public T next() {
  if(hasNext()) {
   wasNextCalled = true;  //設(shè)置為true,remove()方法可以調(diào)用next()
   nextPosition++;
   return list.get(nextPosition-1); //由于先前移,故減一

  }
  else
   throw new NoSuchElementException("Illegal call to next();"+"iterator is after end of list!");
 }

 @Override
 public void remove() {
  if(wasNextCalled){
   list.remove(nextPosition);
   nextPosition--;
   wasNextCalled=false;
  }
  else
   throw new IllegalStateException("Illegal call to remove();"+"next() was not called!");
 }
}

測(cè)試:

注意調(diào)用SeparateIterator的構(gòu)造函數(shù)將迭代器nameofGQT與線性表nameList連接起來。

import java.util.ArrayList;

public class Test {
 public static void main(String[] args){
  ArrayList<String> arrayList=new ArrayList<String>();
  arrayList.add("Ned");
  arrayList.add("John");
  arrayList.add("Robb");
  arrayList.add("Sansa");
  arrayList.add("Arya");
  arrayList.add("Bran");

  for (String s:arrayList) { //輸出
   System.out.println(s);
  }
  System.out.println();

  Iterator<String> nameofGQT=new SeparateIterator<String>(arrayList);  //調(diào)用SeparateIterator的構(gòu)造函數(shù)把迭代器namwodGQT與arrayList連接在一起
//  while (nameofGQT.hasNext())
//   System.out.print(nameofGQT.next()+" "); //用于測(cè)試,否則會(huì)拋出NoSuchElementException異常
//  System.out.println();
  nameofGQT.next();   //The old wolf is gone! Poor Ned!
//  while (nameofGQT.hasNext())
//   System.out.print(nameofGQT.next()+" "); //用于測(cè)試,否則會(huì)報(bào)出NoSuchElementException異常
//  System.out.println();
  nameofGQT.next();
  nameofGQT.remove();  //The Young Wolf is dead!
  //nameofGQT.remove(); //出錯(cuò),未先使用next(),報(bào)出IllegalStateException異常
  while (nameofGQT.hasNext())
   System.out.print(nameofGQT.next()+" ");

 }
}

以上就是使用mybatis怎么實(shí)現(xiàn)逆向生成,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI