java中select的用法_mybaties中select用法,以及常用增刪改查

查詢語句是使用 MyBatis 時最常用的元素之一

select元素配置細節如下

屬性

描述

取值

默認

id

在這個模式下唯一的標識符,可被其它語句引用

parameterType

傳給此語句的參數的完整類名或別名

resultType

語句返回值類型的整類名或別名。注意,如果是集合,那么這里填寫的是集合的項的整類名或別名,而不是集合本身的類名。(resultType 與resultMap 不能并用)

resultMap

引用的外部resultMap 名。結果集映射是MyBatis 中最強大的特性。許多復雜的映射都可以輕松解決。(resultType 與resultMap 不能并用)

flushCache

如果設為true,則會在每次語句調用的時候就會清空緩存。select 語句默認設為false

true|false

false

useCache

如果設為true,則語句的結果集將被緩存。select 語句默認設為false true|false false

timeout 設置驅動器在拋出異常前等待回應的最長時間,默認為不設值,由驅動器自己決定

true|false

false

timeout

設置驅動器在拋出異常前等待回應的最長時間,默認為不設值,由驅動器自己決定

正整數

未設置

fetchSize

設置一個值后,驅動器會在結果集數目達到此數值后,激發返回,默認為不設值,由驅動器自己決定

正整數

驅動器決定

statementType

statement,preparedstatement,callablestatement。

預準備語句、可調用語句

STATEMENT

PREPARED

CALLABLE

PREPARED

resultSetType

forward_only,scroll_sensitive,scroll_insensitive

只轉發,滾動敏感,不區分大小寫的滾動

FORWARD_ONLY

SCROLL_SENSITIVE

SCROLL_INSENSITIVE

驅動器決定

例子:

1 <?xml version="1.0" encoding="UTF-8"?>

2 /p>

4 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

5

6

7 keyProperty="classId">

8 INSERT INTO users(username,PASSWORD)9 VALUES(#{username},#{password});10

11

12 resultMap="adminResultMap">

13 SELECT *FROM t_admin;14

15

16

17

18

19

20

21

28

29

下面是常用的增刪查改方法:

1)configuration.xml ? ? , MyBatis主配置文件

1 <?xml version="1.0" encoding="UTF-8"?>

2 /p>

3 "http://mybatis.org/dtd/mybatis-3-config.dtd">

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

2)jdbc.properties

1 driver=com.mysql.jdbc.Driver2 url=jdbc:mysql://localhost:3306/keith

3 username=keith4 password=keith

3)log4j.properties

1 log4j.rootLogger=DEBUG,CONSOLE,FILEOUT2 log4j.addivity.org.apache=true

3

4 # CONSOLE5 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender6 log4j.appender.Threshold=DEBUG7 log4j.appender.CONSOLE.Target=System.out8 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout9 #log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n10 log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n11

12 #13 # FILEOUT14 log4j.appender.FILEOUT=org.apache.log4j.RollingFileAppender15 log4j.appender.FILEOUT.File=${catalina.home}\\file.log16 log4j.appender.fileout.MaxFileSize=100000KB17 # default is true,append to the file; if false, the replace the log file whenever restart system18 log4j.appender.FILEOUT.Append=true

19 #RollingFileAppender沒有DatePattern這個屬性20 log4j.appender.FILEOUT.layout=org.apache.log4j.PatternLayout21 #log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n22 log4j.appender.FILEOUT.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%m%n

4)User .java

1 packagecom.mybatis.model;2

3 importjava.io.Serializable;4

5 @SuppressWarnings("serial")6 public class User implementsSerializable {7

8 private intid;9 privateString userName;10 privateString password;11

12 publicUser(){13 }14

15 public intgetId() {16 returnid;17 }18 public void setId(intid) {19 this.id =id;20 }21 publicString getUserName() {22 returnuserName;23 }24 public voidsetUserName(String userName) {25 this.userName =userName;26 }27 publicString getPassword() {28 returnpassword;29 }30 public voidsetPassword(String password) {31 this.password =password;32 }33

34 }

5)UserSqlMap.xml

1 <?xml version="1.0" encoding="UTF-8"?>

2 /p>

4 "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

5

6

7

8

9

10

11

12

13

14

15

16

17 userName,password18

19

20

21

22 INSERT INTO USER() VALUES(#{userName},#{password})23

24

25

26 UPDATE USER SET userName=#{userName} ,password=#{password} WHERE id=#{id}27

28

29

30 DELETE FROM USER WHERE id=#{id}31

32

33

34 SELECT *FROM USER35

36

37

38

39 SELECT *FROM USER LIMIT #{pageNow},#{pageSize}40

41

42

43 SELECT * FROM USER WHERE id=#{id}44

45

46

47 SELECT count(*) FROM USER48

49

50

51 SELECT * FROM USER WHERE userName=#{userName}52

53

54

6)SessionFactoryUtil.java ?MyBatis工具類,用于創建SqlSessionFactory

1 packagecom.mybatis.sessionfactory;2

3 importjava.io.IOException;4 importjava.io.Reader;5

6 importorg.apache.ibatis.io.Resources;7 importorg.apache.ibatis.session.SqlSession;8 importorg.apache.ibatis.session.SqlSessionFactory;9 importorg.apache.ibatis.session.SqlSessionFactoryBuilder;10

11 public classSessionFactoryUtil {12

13 private static final String RESOURCE = "Configuration.xml";14 private static SqlSessionFactory sqlSessionFactory = null;15 private static ThreadLocal threadLocal = new ThreadLocal();16

17 static{18 Reader reader = null;19 try{20 reader =Resources.getResourceAsReader(RESOURCE);21 } catch(IOException e) {22 throw new RuntimeException("Get resource error:"+RESOURCE, e);23 }24

25 sqlSessionFactory = newSqlSessionFactoryBuilder().build(reader);26 }27

28 /**

29 * Function : 獲得SqlSessionFactory30 */

31 public staticSqlSessionFactory getSqlSessionFactory(){32 returnsqlSessionFactory;33 }34

35 /**

36 * Function : 重新創建SqlSessionFactory37 */

38 public static voidrebuildSqlSessionFactory(){39 Reader reader = null;40 try{41 reader =Resources.getResourceAsReader(RESOURCE);42 } catch(IOException e) {43 throw new RuntimeException("Get resource error:"+RESOURCE, e);44 }45

46 sqlSessionFactory = newSqlSessionFactoryBuilder().build(reader);47 }48

49 /**

50 * Function : 獲取sqlSession51 */

52 public staticSqlSession getSession(){53 SqlSession session =threadLocal.get();54

55 if(session!=null){56 if(sqlSessionFactory == null){57 getSqlSessionFactory();58 }59 //如果sqlSessionFactory不為空則獲取sqlSession,否則返回null

60 session = (sqlSessionFactory!=null) ? sqlSessionFactory.openSession(): null;61 }62

63 returnsession;64 }65

66 /**

67 * Function : 關閉sqlSession68 */

69 public static voidcloseSession(){70 SqlSession session =threadLocal.get();71 threadLocal.set(null);72 if(session!=null){73 session.close();74 }75 }76 }

7)UserDao interface

1 packagecom.mybatis.dao;2

3 importjava.util.List;4

5 importcom.mybatis.model.User;6

7 public interfaceUserDao {8

9 public User load(intid);10 public voidadd(User user);11 public voidupdate(User user);12 public void delete(intid);13 publicUser findByName(String userName);14 public ListqueryAllUser();15 public List list(int pageNow,intpageSize);16 public intgetAllCount();17

18 }

8)UserDaoImpl

1 packagecom.mybatis.dao.implment;2

3 importjava.util.HashMap;4 importjava.util.List;5 importjava.util.Map;6

7 importorg.apache.ibatis.session.SqlSession;8

9 importcom.mybatis.dao.UserDao;10 importcom.mybatis.model.User;11 importcom.mybatis.sessionfactory.SessionFactoryUtil;12

13

14 public class UserDaoImpl implementsUserDao {15

16 public User load(intid){17 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();18 User user = (User) session.selectOne("com.mybatis.model.User.selectById_user", id);19 session.close();20 returnuser;21 }22

23 public voidadd(User user) {24 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();25 session.insert("com.mybatis.model.User.inser_user", user);26 session.commit();27 session.close();28 }29

30 public voidupdate(User user){31 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();32 session.update("com.mybatis.model.User.update_user", user);33 session.commit();34 session.close();35 }36

37 public void delete(intid){38 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();39 session.delete("com.mybatis.model.User.delete_user", id);40 session.close();41 }42

43 publicUser findByName(String userName){44 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();45 User user = (User)session.selectOne("com.mybatis.model.User.selectByName_user", userName);46 session.close();47 returnuser;48 }49

50 @SuppressWarnings("unchecked")51 public ListqueryAllUser() {52 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();53 List list = session.selectList("com.mybatis.model.User.selectAll_user");54 session.close();55 returnlist;56 }57

58 @SuppressWarnings("unchecked")59 public List list(int pageNow , intpageSize){60 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();61 Map params = new HashMap();62 params.put("pageNow", pageNow);63 params.put("pageSize", pageSize);64 List list = session.selectList("com.mybatis.model.User.selectList_user", params);65 session.close();66 returnlist;67 }68

69 public intgetAllCount(){70 SqlSession session =SessionFactoryUtil.getSqlSessionFactory().openSession();71 int count = (Integer) session.selectOne("com.mybatis.model.User.selectCount_user");72 session.close();73 returncount;74 }75

76 }

9)測試類:

1 packagecom.mybatis.dao.implment;2

3 importjava.util.List;4

5 importorg.junit.Test;6

7 importcom.mybatis.dao.UserDao;8 importcom.mybatis.model.User;9

10 public classUserDaoTest {11

12 private UserDao userDao = newUserDaoImpl();13

14 @Test15 public voidtestLoad(){16 User u = userDao.load(1);17 if(u!=null){18 System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword());19 }20 else{21 System.out.println("id不存在!!");22 }23 }24

25 @Test26 public voidtestAdd(){27 User user = newUser();28 user.setUserName("admin5");29 user.setPassword("123456");30 userDao.add(user);31 }32

33 @Test34 public voidtestUpdate(){35 User user = newUser();36 user.setId(2);37 user.setUserName("manager");38 user.setPassword("123456");39 userDao.update(user);40 }41

42 @Test43 public voidtestQueryAllUser(){44 List list =userDao.queryAllUser();45 if(list!=null&list.size()>0){46 for(User u:list){47 System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword());48 }49 }50 }51

52 @Test53 public voidtestFindByName(){54 User u = userDao.findByName("admin");55 if(u!=null){56 System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword());57 }58 else{59 System.out.println("用戶名不存在!!");60 }61 }62

63 @Test64 public voidtestList(){65 List list = userDao.list(1, 4);66 if(list!=null&list.size()>0){67 for(User u:list){68 System.out.println("UserId:"+u.getId()+" UserName:"+u.getUserName()+" Password:"+u.getPassword());69 }70 }71 }72

73 @Test74 public voidtestGetAllCount(){75 System.out.println("All Count : "+userDao.getAllCount());76 }77

78 @Test79 public voidtestDelete(){80 userDao.delete(3);81 }82

83 }

10)執行testFindByName():

8483f229721faea6a8beae2111637f2d.png

參考至:http://www.open-open.com/lib/view/open1349622424072.html

郁極風在此感謝這位同僚的幫助。

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

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

相關文章

jpa java.util.map_使用JPA存儲Map String,String

JPA 2.0通過ElementCollection注釋可以支持原語集合&#xff0c;您可以將其與java.util.Map集合支持一起使用。這樣的事情應該起作用&#xff1a;Entitypublic class Example {Id long id;// ....ElementCollectionMapKeyColumn(name"name")Column(name"value&q…

Js獲取短信驗證碼前段效果

一&#xff1a;先上效果圖&#xff1a; 二&#xff1a;源代碼文件&#xff1a;reg.html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http:…

java簡述標識符和保留字區別_Java 基礎語法 - 流年似水莫停留的個人頁面 - OSCHINA - 中文開源技術交流社區...

Java 基礎語法一個Java程序可以認為是一系列對象的集合&#xff0c;而這些對象通過調用彼此的方法來協同工作。下面簡要介紹下類、對象、方法和實例變量的概念。對象&#xff1a;對象是類的一個實例&#xff0c;有狀態和行為。例如&#xff0c;一條狗是一個對象&#xff0c;它的…

java創建一副牌_用java怎么創建一副撲克牌

一張撲克牌有兩個屬性&#xff0c;一個是花色(suit)&#xff0c;一個是點數(rank)&#xff0c;下面寫一個簡單的類Cardpackage com.syz.card;import java.io.Serializable;public class Card implements Serializable{private static final long serialVersionUID -4279016186…

java使用三種循環打印99表_編程題:利用for循環打印 9*9 表

#利用for循環打印 9*9 表?1*111*22 2*241*33 2*36 3*391*44 2*48 3*412 4*4161*55 2*510 3*515 4*520 5*5251*66 2*612 3*618 4*624 5*630 6*6361*77 2*714 3*721 4*728 5*735 6*742 7*7491*88 2*816 3*824 4*832 5*840 6*848 7*856 8*8641*99 2*918 3*927 4*936 5*945 6*954 …

php轉化xml數組_PHP實現數組array轉換成xml的方法

本文實例講述了PHP實現數組array轉換成xml的方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;$elementLevel 0 ;function array_Xml($array, $keys ){global $elementLevel;if(!is_array($array)){if($keys ){return $array;}else{return "\n" . $arr…

Java得到請求的IP地址

/*** 得到請求的IP地址* * param request* return*/public static String getIp(HttpServletRequest request) {String ip request.getHeader("X-Real-IP");if (StringUtils.isBlank(ip)) {ip request.getHeader("Host");}if (StringUtils.isBlank(ip)) …

java拉丁正方形_LeetCode JAVA解題---824. 山羊拉丁文

LeetCode 題庫 全 JAVA 解題824. 山羊拉丁文原題回顧&#xff1a;給定一個由空格分割單詞的句子 S。每個單詞只包含大寫或小寫字母。我們要將句子轉換為 “Goat Latin”(一種類似于 豬拉丁文 - Pig Latin 的虛構語言)。山羊拉丁文的規則如下&#xff1a;如果單詞以元音開頭(a, …

opencv 濾鏡效果php,OpenCV實現馬賽克和毛玻璃濾鏡效果

本文為大家分享了OpenCV實現馬賽克和毛玻璃濾鏡的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下一、馬賽克效果馬賽克的實現原理是把圖像上某個像素點一定范圍鄰域內的所有點用鄰域內隨機選取的一個像素點的顏色代替&#xff0c;這樣可以模糊細節&#xff0c;但是可…

php 強制變為整數,強制PHP整數溢出

小編典典因此&#xff0c;我解決了這個問題&#xff0c;并發現了很多有關PHP的知識(至少在處理Integer溢出的方式方面)。1)它完全取決于機器在哪個平臺上運行&#xff0c;哪個版本的PHP&#xff0c;是否運行Suhosin HardenedPHP以及為多少(32或64)位編譯之間的交叉。6臺計算機的…

微信端php 開發技術要求,微信第三方平臺開發詳解——PHP版

申請第三方平臺&#xff0c;這個很簡單直接按照提示填寫&#xff0c;下面的授權事件接收URL中獲取的component_verify_ticket是會過期的&#xff0c;所以不要只獲取一次&#xff0c;緩存起來每10分鐘會發送一次&#xff0c;每1小時會更新一次。附上我的獲取component_verify_ti…

刷題神器怎么導入java,怎么導題庫_有沒有比較好的可以自己導入題庫進行模擬考試練習的軟件_淘題吧...

① 本人有一題庫&#xff0c;怎么把里面的試題全部導出題庫都加密了&#xff0c;沒有導出功能。只能固定抽題后&#xff0c;整理出來。② 在線考試系統題庫怎么導入數據庫優考試的考試系統導入題庫是用word和excel的模板去編輯試題&#xff0c;再進行導入③ 如何導出機考app題庫…

Java讀取指定目錄下的所有文件名

1.效果圖&#xff1a;在控制臺輸出所有的文件的文件名如下&#xff1a; 2.FileUtil.java: package cn.gov.csrc.base.report.util;import java.io.File; import java.util.ArrayList;public class FileUtil {/*** 獲取指定目錄下的所有文件名* * param obj* return*/public sta…

php min命令,php min函數怎么用?

php min函數用于返回一個數組中的最小值&#xff0c;或者幾個指定值中的最小值&#xff0c;其語法是min(array_values)&#xff0c;參數array_values必需&#xff0c;指規定一個包含值的數組。php min函數怎么用&#xff1f;定義和用法min() 函數返回一個數組中的最小值&#x…

java io加速器,Java 日期操作

測試代碼&#xff1a;Calendar calendar Calendar.getInstance();Date today new Date();calendar.setTime(today);calendar.add(Calendar.DATE, -1);Date yesterday calendar.getTime();calendar.add(Calendar.DATE, 2);Date tomorrow calendar.getTime();SimpleDateForma…

php協程和goroutine,淺談協程和Go語言的Goroutine

0x00.前言前面寫了一篇今天來學習Go語言的Goroutine機制&#xff0c;這也可能是Go語言最為吸引人的特性了&#xff0c;理解它對于掌握Go語言大有裨益&#xff0c;話不多說開始吧&#xff01;通過本文你將了解到以下內容&#xff1a;什么是協程以及橫向對比優勢Go語言的Goroutin…

Java連接mysql出現SQL異常,MySQL 這樣連接為何出現這樣的異常

當前位置:我的異常網 Java Web開發 MySQL 這樣連接為何出現這樣的異常MySQL 這樣連接為何出現這樣的異常www.myexceptions.net 網友分享于&#xff1a;2013-09-12 瀏覽&#xff1a;12次MySQL 這樣連接為何出現這樣的錯誤大家好&#xff0c;小弟初學JSP,在連接數據庫的時候遇…

matlab usb cam,Matlab環境下使用USB2.0攝像頭編程image acquisition tools(讀書筆記) | 學步園...

(1)Matlab環境下使用USB2.0攝像頭編程Matlab中的圖像獲取工具箱給我們提供了必要的函數&#xff0c;我們直接調用就可以了&#xff0c;主要就是簡單的介紹如何使用該工具箱進行對USB2.0攝像頭的編程。TAG: USB攝像頭 MatlabMatlab中的圖像獲取工具箱給我們提供了必要的函數&am…

Java實現:月,日,年,周,訪問量統計

一&#xff1a;工程截圖&#xff1a; 二&#xff1a;運行效果圖&#xff1a; 三&#xff1a;CountObjectInfo.java: package cn.csrc.base.count;import java.util.Date;public class CountObjectInfo {// 總訪問量合計protected int totalCount 0;// 日訪問量protected int d…

數組之間的計算matlab,matlab中的矩陣運算和數組運算方法

MATLAB 具有兩種不同類型的算術運算&#xff1a;數組運算和矩陣運算。您可以使用這些算術運算來執行數值計算&#xff0c;例如兩數相加、計算數組元素的給定次冪或兩個矩陣相乘。矩陣運算遵循線性代數的法則。數組運算則是執行逐元素運算并支持多維數組。句點字符 (.) 將數組運…