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.mzph.cn/news/443575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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拉丁正方形_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;下面的授权事件接收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…

php协程和goroutine,浅谈协程和Go语言的Goroutine

0x00.前言前面写了一篇今天来学习Go语言的Goroutine机制&#xff0c;这也可能是Go语言最为吸引人的特性了&#xff0c;理解它对于掌握Go语言大有裨益&#xff0c;话不多说开始吧&#xff01;通过本文你将了解到以下内容&#xff1a;什么是协程以及横向对比优势Go语言的Goroutin…

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…

JavaMelody开源系统性能监控软件:

一&#xff1a;从网上搜索&#xff0c;发现 javamelody 监控web应用程序不错。 JavaMelody能够在QA和实际运行生产环境监测Java或Java EE应用程序服务器。并以图表的形式显示&#xff1a;Java内存和Java CPU使用情况&#xff0c;用户Session数量&#xff0c;JDBC连接数&#x…

java zoneoffset,java - 如何在java8中获取默认的ZoneOffset? - SO中文参考 - www.soinside.com...

tl;drOffsetDateTime.now().getOffset()但您可能应该使用时区而不是仅仅偏离UTC。ZoneId.systemDefault()Offset versus Time Zoneoffset-from-UTC只是一小时&#xff0c;几分钟和几秒钟 - 仅此而已。time zone是特定地区人民使用的偏移的过去&#xff0c;现在和未来变化的历史…

php声波模拟开门,关于 php使用扩展控制树莓派io 驱动超声波测距

经过昨天一下午&#xff0c;终于写好了基于只需要安装完毕&#xff0c;就可以调用函数了&#xff1a;<?php /*** Created by PhpStorm.* User: tioncico* Date: 19-7-6* Time: 下午4:45*/define(PI_TRIG,0);define(PI_ECHO,1);if (wiringPiSetup()false){echo "初始化…

Java和poi导出excel报表

一&#xff1a;poi jar下载地址&#xff1a;点击打开链接&#xff1a; 二&#xff1a;工程截图&#xff1a; 三&#xff1a;运行效果截图&#xff1a; 四&#xff1a;源代码&#xff1a; Student.java: package com.poi.bean;import java.util.Date;public class Student {pri…

sh.k7p.work/index.php,Laowang's Blogs

OpenDayLight(硼Boron版本)实战开发入门OpenDayLight[1](简写为ODL)的硼Boron(0.5.0)版本于2016-09-16 这几天刚刚发布。作为一款开源SDN网络控制器&#xff0c;依托于强大的社区支持以及丰富的功能特性&#xff0c;ODL成为了目前主流的SDN网络控制器开发平台。不仅为开发者提供…

Java和iText导出pdf文档

一&#xff1a;工程截图&#xff1a; 二&#xff1a;项目运行截图&#xff1a; 三&#xff1a;源代码&#xff1a; Book.java package com.iText.bean;public class Book {private int bookId;// 图书编号private String name;// 图书名称private String author;// 图书作者pr…

linux多进程原理,Linux进程调度

极简模式假设我的系统只有一种调度算法cfs那么有个调度的队列 cfs_rq所有running的进程都会 进入这个队列&#xff0c;不在running 或者其他情况会出队列&#xff0c;ok。则假设队列控制的算法有以下。cfs_rq_enqueuecfs_rq_dequeuecfs_rq_pick所操作的是进程描述符 task_struc…

openwrt使用linux内核版本,降低OpenWRT的Linux内核版本

不久前&#xff0c;为了移植某驱动程序&#xff0c;笔者可谓绞尽脑汁&#xff0c;在4.1内核版本上&#xff0c;尝试了很多次都没能成功&#xff0c;后来仔细分析&#xff0c;才知道是内核版本过高导致的&#xff0c;本文给出降低内核版本的方法&#xff0c;具体编译环境的搭建&…

linux天气软件,类似智能手机!Linux中安装Conky天气插件

如今&#xff0c;智能手机中很多都安装相匹配外观的天气小插件&#xff0c;而对于喜欢操作系统平台的用户而言&#xff0c;可以在你的Linux桌面中拥有像智能手机一样的天气外观。通过Flair Weather Conky可以将使用一个GUI工具Conky Manager在Linux中轻松地管理Conky。这里介绍…

linux安装下载中文包,linux下安装中文包和字体

在虚拟机中使用中文输入法和中文显示使用的是rhel5的镜像我把其镜像挂载在/mnt/cdrom中&#xff0c;然后切换到/Server目录下&#xff0c;安装支持中文字体Mount /dev/cdrom /mnt/cdromCd /mnt/cdrom/serverrpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpmrpm -ivh fonts-ISO8…