版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第2章Mybatis基础操作框架程序设计(Java)2学习目标mybatis的简单查询1mybatis的增加、删除、修改操作2mybatis的事务管理332mybatis的增、删、改及事务管理-目录1)插入一条记录2)修改一条记录3)删除一条记录4)使用事务管理2.1mybatis的增、删、改-insert例子1:在用户信息表user中插入一条记录表名user(用户信息表)字段2个username用户名字符串10位主键password密码字符串6位非空要求用mybatis框架编程,mysql数据库,在该表中插入用户名为李四,密码为444的记录框架程序设计java42.1mybatis的增、删、改-insert在sql语句配置文件UserMapper.xml中加入一个新的带参数的sql语句配置:<insertid="insertUser"parameterType="domain.User">insertintouser(username,password)values(#{username},#{password})</insert>说明加入一个insert(插入)标签,与前面select标签并列parameterType=“domain.User”表示传入的参数不是一个简单类型,而是把数据封装到domain.User类的对象中#{username}表示用户名的值来自User类中的username属性,从java代码中传入的是User类对象,然后通过username的get方法得到值,#{password}类似框架程序设计java52.1mybatis的增、删、改-insert在测试类中修改执行sql语句的代码//3.执行sql语句Useruser=newUser();user.setUsername("李四");user.setPassword("444");inti=sqlSession.insert("insertUser",user);//4.结果输出注释掉说明:sqlSession.insert(“insertUser”,user);是插入一条id为insertUser的sql语句,传入的插入参数为user对象调试执行,发现数据库中未成功增加一条数据,重复执行呢?框架程序设计java62.1mybatis的增、删、改-insert在测试类中修改执行sql语句的代码//2.得到执行sql的对象SqlSessionsqlSession=sqlSessionFactory.openSession(true);说明:sqlSessionFactory.openSession(true);是自动提交到数据库(commit),默认为手动提交(sqlSmit();)。调试执行,发现数据库中成功增加一条数据,再重复执行呢?框架程序设计java72.2mybatis的增、删、改-update例子2:在用户信息表user中修改一条记录表名user(用户信息表)字段2个username用户名字符串10位主键password密码字符串6位非空要求用mybatis框架编程,mysql数据库,在该表中修改用户名为李四的记录,把密码444修改为666框架程序设计java82.2mybatis的增、删、改-update在sql语句配置文件UserMapper.xml中加入一个新的带参数的sql语句配置:<updateid="updateUser"parameterType="domain.User">UPDATEuserSETpassword=#{password}WHEREusername=#{username}</update>说明加入一个update(修改)标签,与前面的insert标签并列parameterType=“domain.User”表示传入的参数不是一个简单类型,而是把数据封装到domain.User类的对象中#{username}表示用户名的值来自User类中的username属性,从java代码中传入的是User类对象,然后通过username的get方法得到值,#{password}类似框架程序设计java92.2mybatis的增、删、改-update在测试类中修改执行sql语句的代码//3.执行sql语句Useruser=newUser();user.setUsername("李四");user.setPassword(“666");inti=sqlSession.update("updateUser",user);说明:sqlSession.update(“updateUser”,user);是修改一条id为updateUser的sql语句,传入的插入参数为user对象调试执行,发现数据库中修改成功框架程序设计java102.3mybatis的增、删、改-delete例子3:在用户信息表user中删除一条记录表名user(用户信息表)字段2个username用户名字符串10位主键password密码字符串6位非空要求用mybatis框架编程,mysql数据库,在该表中删除用户名为李四的记录框架程序设计java112.3mybatis的增、删、改-delete在sql语句配置文件UserMapper.xml中加入一个新的带参数的sql语句配置:<deleteid="deleteUser"parameterType="String">deletefromuserwhereusername=#{xxx}</delete>说明加入一个delete(修改)标签,与前面的update标签并列parameterType=“string”表示传入的参数是java中的字符串String类型,其中首字母s大小写是一样的#{xxx}表示传入的参数,这里参数名只是一个形式,可任意命名框架程序设计java122.3mybatis的增、删、改-delete在测试类中修改执行sql语句的代码//3.执行sql语句//Useruser=newUser();//user.setUsername("李四");//user.setPassword(“666");sqlSession.delete(“deleteUser”,“李四”);说明:sqlSession.delete(“deleteUser”,“李四”);是删除一条id为deleteUser的sql语句,传入删除的username为李四调试执行,发现数据库中删除李四这条记录成功框架程序设计java132.4mybatis的事务管理回顾前面例子中mybatis-config.xml文件关键内容<environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><propertyname="driver"value="${jdbc.driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/></dataSource></environment></environments>说明红色的部分就是mybatis的事务管理配置其中type属性有两个取值,JDBC表示由JDBC来进行事务管理,MANAGED表示由第三方插件来管理比如以后要学习的spring框架框架程序设计java142.4mybatis的事务管理例子4:在用户信息表user中插入一条记录表名user(用户信息表)字段2个username用户名字符串10位主键password密码字符串6位非空要求用mybatis框架编程,使用事务管理,mysql数据库,在该表中插入用户名为赵六,密码为444的记录,并将用户名为“王五”的密码改为888框架程序设计java152.4mybatis的事务管理在测试类中修改执行sql语句的代码//2.得到执行sql的对象SqlSessionsqlSession=sqlSessionFactory.openSession(false);说明:sqlSessionFactory.openSession(false);是关闭自动提交到数据库(commit),默认为关闭框架程序设计java162.4mybatis的事务管理在测试类中修改执行sql语句的代码(标准写法)//3.执行sql语句 try{ Useruser1=newUser(); user1.setUsername("赵六"); user1.setPassword("444");
sqlSession.insert("insertUser",user1); Useruser2=newUser(); user2.setUsername("王五"); user2.setPassword("888");
sqlSession.update("updateUser",user2); sqlSmit(); }catch(Exceptionex){ sqlSession.rollback(); }finally{ //5.关闭数据库 sqlSession.close(); }框架程序设计java172.4mybatis的事务管理在测试类中修改执行sql语句的代码说明:sqlSmit();在执行了sql语句之后需要使用commit语句进行提交,不提交在数据库中不会成功执行另外,可以使用sqlSession.rollback();回滚,若出错的时候请加上这条代码框架程序设计java182.5作业在学生信息表student依次进行如下操作表名student(学生信息表)字段2个no学号字符串10位主键name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026水运监理工程师考试(合同管理)历年参考题库含答案详解
- 2026核技术利用辐射安全与防护考试(辐射安全管理)历年参考题库含答案详解
- 2026教师职称考试(保教知识与综合素质)历年参考题库含答案详解
- 包装效果图课程设计
- 基于图嵌入的欺诈交易检测理论框架课程设计
- 杯子喝水课程设计片
- Snort安全防护课程课程设计
- Agent框架低代码实现课程设计
- 边缘检测程序设计课程设计
- 槟榔制作课程设计
- 自动化胰岛素输注系统临床应用护理专家共识(2026版)
- 中国银屑病诊疗指南(2025版)
- 26新六(上)语文小纸条课课贴
- 青浦区2025-2026学年第二学期期末考试六年级数学学试卷及答案(上海新教材沪教版)
- 2026-2030中国便携式肺功能仪行业需求规模与前景动态预测报告版
- 简约商务企业谈判技巧培训模板
- 2026国家电网中级职称考试(政工专业)综合试题及答案
- 2026年高考高校招收华侨港澳台生化学试卷试题(含答案详解)
- (2026年)CRRT常见报警及处理课件
- 2026年故宫博物院面试仿真题解析与备考指南
- 英语报刊选读第一章文体概述
评论
0/150
提交评论