列表数据提交_Mybatis-实现数据的增删改查
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-实现数据的增删改查相关推荐
- mysql源生插入数据_php+mysql源生连接数据库和增删改查数据
php+mysql源生连接数据库和增删改查数据 新建一个init.php文件,执行链接数据库.内容如下 header("Content-type: text/html; charset=ut ...
- crmeb从创建数据表到实现最基础增删改查的实现全过程【带附件】
很多使用了 CRMEB 单商户系统的童鞋在进行二开的时候,都会遇到新建了数据表之后不知道对数据表怎么进行操作.那么,这篇文章将带你完整的实现一遍,以后就不会怕啦. 创建数据表 就以最简单的为例,创建一 ...
- mysql数据库删除列数据_MySQL数据库-数据表、以及列的增删改查
1.创建一个表 CREATE(创建) TABLE(表) ENGINE(引擎) ENGINE=INNODB(引擎)还有很多类引擎,这里只是简单的提一下INNODB引擎,INNODB引擎支持事务(回滚), ...
- 删除所有数据_mysql数据库操作——数据库的增删改查
创建数据库 create database 数据库名称 (其他选项) 其他选项可以不要 如: create database test; 则创建了一个数据库名为test的数据库 加上其他选项如字符集设 ...
- js修改mysql数据库数据_Node.js操作mysql数据库增删改查
关于node.js操作mysql数据库的相关介绍请阅读全文吧.下文介绍的非常详细,具体内容如下所示: 安装mysql模块 npm install mysql 数据库准备 mysql server所在的 ...
- Python数据类型、列表、元组、字典、集合增删改查(切片)
Python基础(数据类型) 有问题可以➕QQ:1606269318来交流沟通. 以下全是干货,对刚学Python是挺有帮助的. 1.Numbers(数字): 1)整数(int) 通常被称为是整型或整 ...
- 使用三层架构实现简单的MVC登陆操作!并实现基本的增删改查功能!!
一丶使用三层架构创建一个简单的MVC登录操作 1.首先,创建一个项目以及BLL层.DAL层.Entity层,如图一: 图一 2.创建一个数据库如图二: 图二 3基本工作已做好,接下来就编BLL层.DA ...
- MongoDB增删改查基础操作
MongoDB高手课_MongoDB_NoSQL-极客时间极客时间推出的MongoDB高手课是帮助互联网从业者学习MongoDB.NoSQL的在线课程,极客时间是面向IT领域的知识服务产品,致力于帮助 ...
- Android room清空表,Android Room 实现简单的增删改查(一)
大丈夫生于天地间,不识其主而事之,是无智也!今日受死,夫何足惜!--田丰 以前我们在开始学习Android开发的时候,首选接触的就是SQLITE数据库,有后来的greenDao数据库.realm数据等 ...
- JDBC知识点/第三部分使用PreparedStatement增删改查
JDBC知识点/第三部分增删改查 写在前面:本博客是JDBC第三部分,JDBC学习路线目录为: JDBC总目录 欢迎大家一起讨论,如有错误,敬请指正 目录 JDBC知识点/第三部分增删改查 3 增删改 ...
最新文章
- A.CPP (blur.CPP)如何调用B.CPP (zeros.cpp)中定义的方法
- Node.js项目实践:构建可扩展的Web应用
- GAN在Image To Image translation 和Inverse Problem中的应用
- laravel使用migrate操作数据库迁移
- oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...
- 求之不得的 Java 文档教程大汇总!
- python03_Python中的列表、元组、字典和集合
- 001 python接口 get请求
- 经典手眼标定算法之Tsai-Lenz的OpenCV实现
- Vb股票实时交易数据采集源码
- NSSM 制作 window 服务
- 集线器故障诊断与排除
- 苹果开发者账号购买流程
- css3软键盘不盖住输入框的方法
- P1598 垂直柱状图(模拟)
- “误收”2100 个以太坊之后,星火矿池是退是分?
- Linux网络编程——网络协议入门
- python分析每月销售数据_Python分析某医院销售数据
- 一般web放在linux那个目录下,【linux】linux 大家一般把web目录放在哪个分区下面呢?放在/data目录下面安全吗?...
- ASCII编码 - 学习/实践
热门文章
- 1884: 三个家庭(思维题)
- MongoDB 5.0新特性概览
- OceanBase首次阐述战略:继续坚持自研开放之路 开源300万行核心代码
- 阿里云开源PolarDB数据库,与社区共建云原生分布式数据库生态
- 技术人生——解决问题的规律
- 连载:阿里巴巴大数据实践—数据开发平台
- Code Review 是苦涩但有意思的修行
- linux 脚本$字符,一文看懂shell脚本中$0 $1 $# $@ $* $? $$ 的各种符号意义
- 找不到redis得pid文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
- 影视或游戏:中国视效人才的「进与退」