mybatis实战教程(mybatis in action)之三:实现数据的增删改查
1. 用 mybatis 查询数据,包括列表
2. 用 mybatis 增加数据
3. 用 mybatis 更新数据.
4. 用 mybatis 删除数据.
查询数据,前面已经讲过简单的,主要看查询出列表的
查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的
<!-- 为了返回list 类型而定义的returnMap -->
<resultMap type="User" id="resultListUser">
<id column="id" property="id" />
<result column="userName" property="userName" />
<result column="userAge" property="userAge" />
<result column="userAddress" property="userAddress" />
</resultMap>
查询列表的语句在 User.xml 中
<!-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->
<select id="selectUsers" parameterType="string" resultMap="resultListUser">
select * from user where userName like #{userName}
</select>
在 IUserOperation 接口中增加方法:public List<User> selectUsers(String userName);
现在在 Test 类中做测试
public void getUserList(String userName){
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation=session.getMapper(IUserOperation.class);
List<User> 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 id="addUser" parameterType="User"
useGeneratedKeys="true" keyProperty="id">
insert into user(userName,userAge,userAddress)
values(#{userName},#{userAge},#{userAddress})
</insert>
然后在 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 id="updateUser" parameterType="User" >
update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}
</update>
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 id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>
然后在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实战教程(mybatis in action)之三:实现数据的增删改查相关推荐
- mybatis实战教程(mybatis in action),mybatis入门到精通
目录(?) [-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程 ...
- mybatis实战教程(mybatis in action),mybatis入门到精通(转)
写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活.性能也比hibernate好.而且也比较轻量级,因为当时在项目中,没来 ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- mybatis学习笔记(2)两种配置实现增删改查
第二天学习mybatis,发现框架的存在确实是省了我们很多时间,我们完全可以把一些操作简化,或者实现简单的封装提供我们使用.昨天是跟着教程云里雾里的实现了配置,今天再次使用就方便很多. String ...
- SpringBoot使用Redis和MyBatis完成缓存数据的增删改查
文章目录 1.在Spring Boot中集成Redis 2.配置Redis类 关于Redis Template中序列化和反序列化配置的解释 3.创建测试实体类 4.实现实体和数据表的映射关系 5.创建 ...
- spring整合mybatis(实现数据的增删改查)
一.专业术语解释 1.spring:是分层的Java SE/EE应用full - stack轻量级开源框架,以IoC(控制反转)和AOP(面向切面编程)为内核,提供展现层spring MVC 和 sp ...
- 在Mybatis中使用万能的Map传参,实现增删改查
在编程中,有可能遇到我们的实体类或者数据库中表的字段或参数过多的情况,那这时候用Map传参是比较理想的选择. Map的特性是键值对应的,只要确定了一个键key,那么值value可以是任何的数据,这样就 ...
- SpingBoot中使用MyBatis和pagehelper实现数据的增删改查和分页
文章目录 一.认识MyBatis CRUD注解 映射注解 高级注解 二.用MyBatis实现数据的增加.删除.修改.查询和分页 1.创建springboot项目并引入依赖 2.实现数据表的自动初始化 ...
- 【转】mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
转自:除非申明,文章均为一号门原创,转载请注明本文地址,谢谢! 转载地址:http://blog.csdn.net/kutejava/article/details/9164353#t5 1. if ...
最新文章
- sqlserver 2014使用时有Cannot find one or more components
- 2021年人工神经网络第四次作业-第四题:旋转的数字
- boost::hawick_circuits用法的测试程序
- MaxCompute实践分析
- 定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。
- 13. OD-内嵌补丁,过期的软件DVD Menu Studio破解,switch函数,break等于KillTimer
- Java toBinaryString()函数探究及Math.abs(-2147483648)=-2147483648原理探究
- 给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)...
- 【Python】Json序列化和反序列化模块dumps、loads、dump、load函数介绍
- 苍蓝契约服务器维护,苍蓝誓约萌新玩家新手任务及刷初始方法
- Web系统Login拦截器
- Maven常用命令 - 构建反应堆中指定模块
- thinkphppaginate.php,thinkphp如何使用paginate及其参数示例使用
- Docker从理论到实践(五)------Dokcer容器
- 腾讯云数据迁移工具解决方案:阿里云迁移到腾讯云
- 测试9年,面试华为要薪1万,华为员工:公司没这么低工资的岗
- 常见主从复制报错处理案例
- 瑞莎 Renesas Flash烧录
- 中国移动集团史正军:论支付能力的重要意义及我们要发展什么样的支付?
- Qt Charts示例
热门文章
- Android的ArrayAdapter、SimpleAdapter、BaseAdapter与ListView的使用
- html2canvas图片坐标,html2canvas生成的图片偏移不完整的解决方法
- sqlserver中能用when_【SQL】SQL中Case When的用法
- jsp页面ajax用法,JSP页面如何使用ajax实现局部刷新
- promotion failed 和 Concurrent Mode Failure的区别
- STM8S001J3M3还能完这么多花样,开发板尝鲜体验。
- 深度学习资源一网打尽!论文、数据集、框架、课程、图书等应有尽有
- 马斯克圣诞节晒太空飞船:明年4月测试,5年后飞火星
- 去年我国科技研发投入1.76万亿元,与美国差距逐年缩小
- 这台相机没镜头!美国教授新发明,一块玻璃可成像,拍照给计算机看