【增】

【1、在接口中写一个用来新增的接口】

  1. public void insertUser(User us) ;
【2、分别用两种不同的形式来实现新增的功能,如下】

  1. public static void addUser(){
  2. SqlSession session = sf.openSession() ;
  3. User us = new User() ;
  4. us.setName("YaoMing");
  5. us.setNumber("11");
  6. us.setPosition("中锋");
  7. us.setTeam("休斯敦火箭");
  8. int iCount = session.insert("com.crayon.test.IMyBatis.insertUser",us) ;
  9. session.commit();
  10. System.out.println("成功新增"+iCount+"条记录");
  11. }
  12. public static void addUserInterface(){
  13. SqlSession session = sf.openSession() ;
  14. User us = new User() ;
  15. us.setName("YaoMing");
  16. us.setNumber("11");
  17. us.setPosition("中锋");
  18. us.setTeam("休斯敦火箭");
  19. IMyBatis ib = session.getMapper(IMyBatis.class) ;
  20. ib.insertUser(us);
  21. session.commit();
  22. System.out.println("新增成功!");
  23. }
然后直接在main函数中调用方法即可。

这里需要注意的是自己在做学习测试的时候按照这样做可能会出现下面这种情况:
执行新增方法之后对应的中文字段是以?的形式插入到数据库中,这个问题怎么解决呢
如下,找到你的配置数据库连接的地方,然后做如下修改:
然后再试一下,发现成功了。
对于新加的那一段代码,有一个需要注意的?
如果写成
  1. <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatistest?useUnicode=true&characterEncoding=utf8" />
这样的话就可能抛出如下的异常信息:

Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 106; 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾。  
通过检查,发现了xml文件中对于url值的设置的时候?后面的参数之间是用“&”连接的,而在xml中这些特殊字符是需要转义的。那么通常对应的转义字符如下:

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

单引号

&quot;

"

双引号

【删】

【1、在接口中新增一个接口】
  1. @Delete("delete from user where id =#{id}")
  2. public void deleteUser(int id);
【2、在测试类中写一个删除方法】

  1. public static void deleteUser(){
  2. SqlSession session = null ;
  3. try {
  4. session = sf.openSession();
  5. IMyBatis ib = session.getMapper(IMyBatis.class) ;
  6. ib.deleteUser(14) ;
  7. session.commit();
  8. System.out.println("删除成功!");
  9. } catch (Exception e) {
  10. // TODO Auto-generated catch block
  11. e.printStackTrace();
  12. }
  13. }
【3、在main函数中调用删除方法即可实现想要的效果】

【改】

一个根据id查找的接口
  1. @Select("select * from user where id =#{id}")
  2. public User getUserById(int id) ;
一个更新的接口

  1. @Update("update user set name=#{name},team=#{team},position=#{position},number=#{number} where id=#{id}")
  2. public void updateUser(User us) ;
在测试类中做如下代码测试:

  1. public static User getUserByID(int id) {
  2. SqlSession session = null ;
  3. try {
  4. session = sf.openSession() ;
  5. IMyBatis ib = session.getMapper(IMyBatis.class) ;
  6. User us = ib.getUserById(id) ;
  7. return us ;
  8. } catch (Exception e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }
  12. return null ;
  13. }
  1. public static void updateUser(User us){
  2. SqlSession session = null ;
  3. try {
  4. session = sf.openSession() ;
  5. IMyBatis ib = session.getMapper(IMyBatis.class ) ;
  6. us.setName("易建联");
  7. us.setNumber("9");
  8. us.setTeam("雄鹿");
  9. us.setPosition("大前锋");
  10. ib.updateUser(us);
  11. session.commit();
  12. System.out.println("更新成功");
  13. } catch (Exception e) {
  14. // TODO Auto-generated catch block
  15. e.printStackTrace();
  16. }
  17. }
  1. public static void main(String[] args) {
  2. //查看user信息
  3. //getUserList() ;
  4. //deleteUser() ;
  5. //新增用户信息
  6. //addUser() ;
  7. User u = getUserByID(15);
  8. updateUser(u);
  9. }

来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/yaoxiaoxing/p/5446884.html

Mybatis增删改相关推荐

  1. 【Java从0到架构师】MyBatis - 增删改、动态 SQL

    MyBatis - 增删改.动态 SQL 动态 SQL if 标签 where 标签 sql 标签 foreach 标签 添加 主键设置 批量添加 - 利用 foreach 标签 更新 删除 批量删除 ...

  2. Mybatis 详细的创建流程及创建第一个Mybatis增删改查程序 CRUD

    1.idea新建Maven项目Mybatis-study 将项目里的src文件夹删掉 依次将此项目作为父项目 2.在Mybatis-study中新建模块mybatis-01         在myba ...

  3. Mybatis——增删改查CLUD

    一.CRUD 1.namespace namespace中的包名和 Dao/Mapper 接口中的包名一致 2.select 选择查询语句: id:就是对应的namespace中的方法名: resul ...

  4. Mybatis——增删改查(CRUD)操作

    java学习--Mybatis CRUD操作 mybatis是一个可以自定义SQL.存储过程和高级映射的持久层框架.上面这个定义是在百度上抄的,简单来说,Mybatis简化了我们对数据库的一系列操作, ...

  5. SSM框架——Mybatis增删改查

    目录 目录 环境配置 增删改查的实现 查询全部 查询单个ID 添加用户 修改用户 删除用户 增删改查-使用注解开发 思路流程:搭建环境-->导入Mybatis--->编写代码---> ...

  6. Mybatis增删改查

    增删改查基本上就是一个操作,一模一样的,首先是UserMpper接口: package com.ftz.Demo.dao;import com.ftz.Demo.po.User;import java ...

  7. MyBatis增删改对二级缓存的影响

    /*增删改对二级缓存的影响*//*1.增删改同样也会清空二级缓存2.对于二级缓存的清空,实质是对所查key对应的value置为null,而并非key-value对,即Entry对象删除3.从DB中进行 ...

  8. springboot整合mybatis增删改查(三):mybatis逆向工程

    上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...

  9. MyBatis增删改示例——MyBatis学习笔记之二

    上篇博文介绍了MyBatis的一个入门示例,今天介绍如何实现数据库的增加.删除和修改记录的操作.为简洁起见,与上个示例重复的注释将被删除(少数重要的除外).若影响了您的理解,可参考上篇博文. 本示例的 ...

  10. mybatis增删改查快速实现!!!

    Mybatis 简介 ** 1.什么是Mybatis ** MyBatis是一款优秀的基于java的持久层框架,它内部 封装了jdbc,使开发者只需要关注sql语句本身. 参考文档 :https:// ...

最新文章

  1. 前端面试题整理(定期更新)
  2. 学了python 以后能干啥-学python语言以后能干嘛?
  3. dhcp只能分配与路由器相同网段么_dhcp工作原理
  4. python closure闭包 lambda表达式
  5. python怎么调用局部变量_python基础:局部变量--全局变量的使用
  6. 总结Python的几点语言特性
  7. caffe(4):mnist实例---手写数字识别
  8. Linux网络编程——原始套接字编程
  9. 解决maven不能自动导入ojdbc14的问题
  10. protel99se的封装库
  11. 解决linux中挖矿病毒
  12. linux pgm格式图片,pgm文件扩展名,pgm文件怎么打开?
  13. WallPaperAbyss爬虫
  14. Java程序员秋招面经大合集
  15. Java学习总结3——枚举类和反射机制
  16. Unity3D windows平台视频录制录屏插件 UnityRecorder
  17. 网秦发布手机杀毒4.0版:首创云+端双引擎
  18. pygame开发飞机大战外星人游戏
  19. 百度传课html,百度传课电脑版
  20. 变频器的四大组成部分和工作原理

热门文章

  1. 软件测试与评估:Keep/悦跑圈
  2. TFS在项目中Devops落地进程(上)
  3. C++ 系列:基础知识储备
  4. 排序的几种方法 oc
  5. 扩展方法IEnumerableT转换为IListSelectListItem ,提供@Html.DropDownList使用
  6. 浅谈BPM和SOA架构下的电子政务系统
  7. React Native 环境配置
  8. 17个实用的JavaScript数组和对象的方法
  9. 使用php蓝天采集器抓取今日头条ajax的文章内容
  10. python基础===八大排序算法的 Python 实现