1. 用 mybatis 查询数据,包括列表

2. 用 mybatis 增加数据

3. 用 mybatis 更新数据.

4. 用 mybatis 删除数据.

查询数据,前面已经讲过简单的,主要看查询出列表的

查询出列表,也就是返回list, 在我们这个例子中也就是 List , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的

程序代码< !-- 为了返回list 类型而定义的returnMap --> 

查询列表的语句在 User.xml 中

程序代码< !-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->  select * from user where userName like #{userName} 

在 IUserOperation 接口中增加方法:public List selectUsers(String userName);

现在在 Test 类中做测试

 程序代码public void getUserList(String userName){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class);  List users = userOperation.selectUsers(userName); for(User user:users){ System.out.println(user.getId()+":"+user.getUserName()+":"+user.getUserAddress()); }  } finally { session.close(); } }

现在在main 方法中可以测试:

 程序代码public static void main(String[] args) { Test testUser=new Test(); testUser.getUserList("%"); }

可以看到,结果成功查询出来。如果是查询单个数据的话,用第二讲用过的方法就可以了。

用mybatis 增加数据

在 IUserOperation 接口中增加方法:public void addUser(User user);

在 User.xml 中配置

程序代码< !--执行增加操作的SQL语句。id和parameterType  分别与IUserOperation接口中的addUser方法的名字和  参数类型一致。以#{name}的形式引用Student参数  的name属性,MyBatis将使用反射读取Student参数  的此属性。#{name}中name大小写敏感。引用其他  的gender等属性与此一致。seGeneratedKeys设置  为"true"表明要MyBatis获取由数据库自动生成的主  键;keyProperty="id"指定把获取到的主键值注入  到Student的id属性-->    insert into user(userName,userAge,userAddress)  values(#{userName},#{userAge},#{userAddress})  

然后在 Test 中写测试方法:

 程序代码/** * 测试增加,增加后,必须提交事务,否则不会写入到数据库. */ public void addUser(){ User user=new User(); user.setUserAddress("人民广场"); user.setUserName("飞鸟"); user.setUserAge(80); SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class); userOperation.addUser(user); session.commit(); System.out.println("当前增加的用户 id为:"+user.getId()); } finally { session.close(); } }

用mybatis 更新数据

方法类似,先在 IUserOperation 中增加方法:public void addUser(User user);

然后配置 User.xml

程序代码

 update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id} 

Test 类总的测试方法如下:

程序代码

public void updateUser(){ //先得到用户,然后修改,提交。 SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class); User user = userOperation.selectUserByID(4);  user.setUserAddress("原来是魔都的浦东创新园区"); userOperation.updateUser(user); session.commit();  } finally { session.close(); } }

用mybatis 删除数据

同理,IUserOperation 增加方法:public void deleteUser(int id);

配置User.xml

程序代码

 delete from user where id=#{id} 

然后在Test类中写测试方法:

程序代码

 /** * 删除数据,删除一定要 commit. * @param id */ public void deleteUser(int id){ SqlSession session = sqlSessionFactory.openSession(); try { IUserOperation userOperation=session.getMapper(IUserOperation.class);  userOperation.deleteUser(id); session.commit();  } finally { session.close(); } }

这样,所有增删改查都完成了,注意在增加,更改,删除的时候要调用session.commit(),这样才会真正对数据库进行操作,否则是没有提交的。

列表数据提交_Mybatis-实现数据的增删改查相关推荐

  1. mysql源生插入数据_php+mysql源生连接数据库和增删改查数据

    php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...

  2. crmeb从创建数据表到实现最基础增删改查的实现全过程【带附件】

    很多使用了 CRMEB 单商户系统的童鞋在进行二开的时候,都会遇到新建了数据表之后不知道对数据表怎么进行操作.那么,这篇文章将带你完整的实现一遍,以后就不会怕啦. 创建数据表 就以最简单的为例,创建一 ...

  3. mysql数据库删除列数据_MySQL数据库-数据表、以及列的增删改查

    1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚), ...

  4. 删除所有数据_mysql数据库操作——数据库的增删改查

    创建数据库 create database 数据库名称 (其他选项) 其他选项可以不要 如: create database test; 则创建了一个数据库名为test的数据库 加上其他选项如字符集设 ...

  5. js修改mysql数据库数据_Node.js操作mysql数据库增删改查

    关于node.js操作mysql数据库的相关介绍请阅读全文吧.下文介绍的非常详细,具体内容如下所示: 安装mysql模块 npm install mysql 数据库准备 mysql server所在的 ...

  6. Python数据类型、列表、元组、字典、集合增删改查(切片)

    Python基础(数据类型) 有问题可以➕QQ:1606269318来交流沟通. 以下全是干货,对刚学Python是挺有帮助的. 1.Numbers(数字): 1)整数(int) 通常被称为是整型或整 ...

  7. 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!

    一丶使用三层架构创建一个简单的MVC登录操作 1.首先,创建一个项目以及BLL层.DAL层.Entity层,如图一: 图一 2.创建一个数据库如图二: 图二 3基本工作已做好,接下来就编BLL层.DA ...

  8. MongoDB增删改查基础操作

    MongoDB高手课_MongoDB_NoSQL-极客时间极客时间推出的MongoDB高手课是帮助互联网从业者学习MongoDB.NoSQL的在线课程,极客时间是面向IT领域的知识服务产品,致力于帮助 ...

  9. Android room清空表,Android Room 实现简单的增删改查(一)

    大丈夫生于天地间,不识其主而事之,是无智也!今日受死,夫何足惜!--田丰 以前我们在开始学习Android开发的时候,首选接触的就是SQLITE数据库,有后来的greenDao数据库.realm数据等 ...

  10. JDBC知识点/第三部分使用PreparedStatement增删改查

    JDBC知识点/第三部分增删改查 写在前面:本博客是JDBC第三部分,JDBC学习路线目录为: JDBC总目录 欢迎大家一起讨论,如有错误,敬请指正 目录 JDBC知识点/第三部分增删改查 3 增删改 ...

最新文章

  1. A.CPP (blur.CPP)如何调用B.CPP (zeros.cpp)中定义的方法
  2. Node.js项目实践:构建可扩展的Web应用
  3. GAN在Image To Image translation 和Inverse Problem中的应用
  4. laravel使用migrate操作数据库迁移
  5. oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...
  6. 求之不得的 Java 文档教程大汇总!
  7. python03_Python中的列表、元组、字典和集合
  8. 001 python接口 get请求
  9. 经典手眼标定算法之Tsai-Lenz的OpenCV实现
  10. Vb股票实时交易数据采集源码
  11. NSSM 制作 window 服务
  12. 集线器故障诊断与排除
  13. 苹果开发者账号购买流程
  14. css3软键盘不盖住输入框的方法
  15. P1598 垂直柱状图(模拟)
  16. “误收”2100 个以太坊之后,星火矿池是退是分?
  17. Linux网络编程——网络协议入门
  18. python分析每月销售数据_Python分析某医院销售数据
  19. 一般web放在linux那个目录下,【linux】linux 大家一般把web目录放在哪个分区下面呢?放在/data目录下面安全吗?...
  20. ASCII编码 - 学习/实践

热门文章

  1. 1884: 三个家庭(思维题)
  2. MongoDB 5.0新特性概览
  3. OceanBase首次阐述战略:继续坚持自研开放之路 开源300万行核心代码
  4. 阿里云开源PolarDB数据库,与社区共建云原生分布式数据库生态
  5. 技术人生——解决问题的规律
  6. 连载:阿里巴巴大数据实践—数据开发平台
  7. Code Review 是苦涩但有意思的修行
  8. linux 脚本$字符,一文看懂shell脚本中$0 $1 $# $@ $* $? $$ 的各种符号意义
  9. 找不到redis得pid文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
  10. 影视或游戏:中国视效人才的「进与退」