使用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. 第二百五十七节,Tornado框架-路由映射,逻辑处理,文件归类配置

    Tornado框架-路由映射,逻辑处理,文件归类配置 Tornado框架 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起 ...

  2. Http缺省的请求方法是。(选择1项)

    A.PUT B.GET C.POST D.TRACE 解答:B

  3. 断言(assert)和程序的安全保证

    断言,用来DEBUG错误的,在DEBUG时发现然后跟踪错误! 通常 写一个程序给别人使用的,这个代码在安全性上的要求是什么呢?直觉上,我们都知道程序不应该崩.但是通常C/C++的程序如果把包含API的 ...

  4. ThinkPHP项目笔记之MVC篇

    题记:网上关于ThinkPHP的介绍,不计其数,有文档,示例,代码片段以及其他等.毕竟自己掌握的,才是自己的. 所以,趁着做的项目(当然用的是thinkphp框架)的余热,奋笔疾书,一个人的理解与拙笔 ...

  5. 进制A~Z,全字母26进制转化

    public String to26( int x ) { StringBuffer sBuffer = new StringBuffer(); int cur; x++; while( x > ...

  6. hdu 2612:Find a way(经典BFS广搜题)

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  7. Tomcat6连接数设置:permsize

    Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64) TOMCAT_HOME/bin/catalina.sh 添加一行:JAVA_OPTS ...

  8. 【ML】有偏样本解决方案

    占个位置,得空写文章. From:learning-from-imbalanced-data

  9. MathType二次偏导怎么表示

    求导以及求偏导运算在数学中是很重要的一个部分,尤其是在高等数学中,基本都由函数的导数与偏导组成,很多公式定理也是关于这方面的,如果少了这一部分,数学将会黯然失色.因此在文档中涉及到这些内容时,必然会少 ...

  10. superresolution_v_2.0 Application超分辨率程序文档

    SUPERRESOLUTION GRAPHICAL USER INTERFACE DOCUMENTATION Contents 1.- How to use this application. 2.- ...