使用MyBatis对表执行CRUD操作——基于XML的实现

1.创建(create)用户:在userMapper.xml文件中增加:

<!-- 创建用户Create -->
<insert id="addUser" parameterType="com.fpc.Entity.User">
insert into users(name,age) values(#{name},#{age})
</insert>

在测试类测试:

String statement1 = "com.fpc.Mapping.userMapper.addUser";
User user1 = new User();
user1.setName("fpc");
user1.setAge(28);
int retResult = session.insert(statement1,user1);
session.commit();
session.close();
System.out.println(retResult);

执行的结果:

执行之前查询数据库中的值:

执行完,数据库users表中的数据为:

2.删除(delete)用户:在userMapper.xml文件中增加:

<!--删除用户 -->
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>

单元测试类中测试:

String statement1 = "com.fpc.Mapping.usrMapper.deleteUser";
int retResult = session.delete(statement1,3);
session.close();
System.out.println(retResult);

执行的结果,查询数据库,select * from users;得到的结果是:

可以看到id为3的记录已经被删除了。

3.更新(update)用户

在userMapper.xml中增加:

<!-- 更新用户 -->
<update id="updateUser" parameterType="com.fpc.Entity.User">
update users set name=#{name},age=#{age} where id=#{id}
</update>

测试类Test1中添加如下代码进行测试:

String statement1 = "com.fpc.Mapping.userMapper.updateUser";
User user = new User();
user.setId(1);
user.setName("Michiel");
user.setAge(30);
int retResult = session.delete(statement1,user);
session.commit();
// *-session.close();
System.out.println(retResult); String statement2 = "com.fpc.Mapping.userMapper.getUser";
User user2 = (User) session.selectOne(statement2,1);
System.out.println("Id: " +user2.getId() + " name : " + user2.getName() + " age: " + user2.getAge());

执行结果为:

使用Mybatis对表执行CRUD操作——基于注解的实现

package com.fpc.Mapping;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update; import com.fpc.Entity.User; public interface UserMapperI {
//使用@Insert注解指明add方法要执行的SQL
@Insert("insert into users(name,age) values(#{name},#{age})")
public int add(User user); //使用@Delete注解指明deleteById方法要执行的SQL
@Delete("delete from users where id=#{id}")
public int deleteById(int id); //使用Update注解指明update方法要执行的SQL
@Update("update users set name=#{name},age=#{age} where id=#{id}")
public int update(User user); //使用Seletce注解指明getById方法要执行的SQL
@Select("select * from users where id=#{id}")
public User getById(int id);
}

需要说明的是,我们不需要针对UserMapper接口去编写具体的实现类代码,这个具体的实现类由Mybatis帮我们动态构建出来,我们只需要直接拿来使用即可。

2.在conf.xml文件中注册这个映射接口

在con.xml中添加:

<!-- 注册UserMapper映射接口 -->
<mapper class="com.fpc.Mapping.UserMapperI"></mapper>

特别注意:一开始用的jar包是mybatis-3.0.2.jar,但是运行项目是报错了,报错信息如下:

而lineNumber:23指的就是conf.xml中添加的接口配置文件。

经过了各种查找原因,都没效果。但是看到有篇文章提到mybatis 3.2版本以下是不支持注解的形式的。抱着试试看的态度,我将mybatis的jar包换成了mybatis-3.4.5.

然后再运行项目,不再报错。至于是不是必须得是3.2版本以上才支持注解的形式,这个不得而知,但3.0.3版本的mybatis是肯定不行的。

3.单元测试类代码:

创建用户:

UserMapperI mapper = session.getMapper(UserMapperI.class);
User user = new User();
user.setName("userrrrrr");
user.setAge(25);
int add = mapper.add(user);
session.close();
System.out.println(add);

运行完的结果:

删除用户:

UserMapperI mapper = session.getMapper(UserMapperI.class);
int delete = mapper.deleteById(4);
session.close();

运行结果,id为4的用户被删除了:

更新用户:

UserMapperI mapper = session.getMapper(UserMapperI.class);
User user = new User();
user.setId(1);
user.setName("Lily");
user.setAge(24);
int update = mapper.update(user);

运行结果:

Mybatis框架学习总结-使用Mybatis对表执行CRUD操作的更多相关文章

  1. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  2. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  3. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  4. 【转】MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    [转]MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据, ...

  5. MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...

  6. 二:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...

  8. MyBatis学习总结_02_使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...

  9. MyBatis学习总结(2)——使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...

随机推荐

  1. netctl

    netctl is a CLI-based tool used to configure and manage network connections via profiles. It is a na ...

  2. 用Netty开发中间件:高并发性能优化(转)

    用Netty开发中间件:高并发性能优化 最近在写一个后台中间件的原型,主要是做消息的分发和透传.因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本.Net ...

  3. js实现div的置底

    //-------------置底的div---------------------- <div class="mui-content lv-mrcd"  id=" ...

  4. 云通讯 为php_sdk 添加关闭子账户扩展

  5. 【BZOJ】1622: [Usaco2008 Open]Word Power 名字的能量(dp/-模拟)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1622 这题我搜的题解是dp,我也觉得是dp,但是好像比模拟慢啊!!!! 1400ms不科学! 设f[ ...

  6. 开启mysql日志及若干问题

    今天学习了mysql日志功能,以前也有所了解,只不过没有深入的学习,所以趁着“余热”,把我从网上找到的资料与实践 结合起来,总结一下其基本用法.学习从来都不是无趣的,就看你怎么看待学习. 1.查看查询 ...

  7. jenkins发布docker到mesos

    1.前提是装好git.SSH.maven插件 2.jenkins新建一个项目,配好git拉取代码.maven编译构建(gradle构建也行,这不重要) 3.SSH Server,填写需要传输的jar文 ...

  8. Angular2 HttpClient (一)

    @angular/common/http 中的 HttpClient 类为 Angular 应用程序提供了一个简化的 API 来实现 HTTP 客户端功能.它基于浏览器提供的 XMLHttpReque ...

  9. linux下源代码搭建php环境之mysql(一)

    如今已经大半夜了,五一劳动节挺无聊的. 折腾一下吧.实在是睡不着.于是乎在电脑上安装个虚拟机,然后呢,在虚拟机上搭建一个php环境. 首先我得安装MYSQL吧. 发现遇到的问题真多. .待我娓娓道来. ...

  10. 用Broadcast Receiver刷新数据

    ①注册广播事件: 注册方式有两种, 一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的广播接收器必须要继承BroadcastReceiver: 另一种是动态注册,是在程序中 ...