Mybatis框架学习总结-使用Mybatis对表执行CRUD操作
使用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操作的更多相关文章
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- 【转】MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
[转]MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据, ...
- MyBatis学习笔记(二)——使用MyBatis对表执行CRUD操作
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4262895.html 上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用My ...
- 二:MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...
- MyBatis学习总结_02_使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...
- MyBatis学习总结(2)——使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...
随机推荐
- Hbase脚本小结
脚本使用小结: 1.开启集群,start-hbase.sh 2.关闭集群,stop-hbase.sh 3.开启/关闭所有的regionserver.zookeeper,hbase-daemons.sh ...
- 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
如果有这样的需求: 1 不想再bean.xml加载的时候实例化bean,而是想把加载bean.xml与实例化对象分离. 2 实现单例的bean 以上的情况,都可以通过工厂方法factory-metho ...
- catch signal
捕抓信号 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,称为捕抓信号. 除了SIGSTOP和SIGKILL进程能够忽略或捕获其他的全部信号. 注:信号可从两个不同分类角度对信号进行分 ...
- 亿级日PV的魅族云同步的核心协议与架构实践(转)
云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天 ...
- PHP多进程编程(一)
虽然PHP 中,多进程用的比较的少.但是毕竟可能是会用到了.我最近就遇到这样一个问题,用户提交几百个url以后,要读出这个url 中的标题. 当然,你不希望用户等待的太久,10s 钟应该给出个答案.但 ...
- 第二百七十四节,同源策略和跨域Ajax
同源策略和跨域Ajax 什么是同源策略 尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措 ...
- MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping
由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类.Dao接口类甚至Mappi ...
- 一个线程可以拿到多个锁标记,一个对象最多只能将monitor给一个线程
当用Synchronized修饰某个方法的时候,表示该方法都对当前对象加锁. 给方法加Synchronized和用Synchronized修饰对象的效果是一致的. 一个线程可以拿到多个锁标记,一个对象 ...
- Eclipse导入MyEclipseproject(web项目显示为java项目解决的方法)
在直接Import MyEclipse的项目文件导入到Eclipse之后,须要在项目所放的workspace内改动引入项目文件夹下的.project文件,改动例如以下: 1.在eclipse中新建一个 ...
- com.mysql.jdbc.MysqlDataTruncation: Data trunca...
连接的是mysql数据库,插入数据时,控制台报: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for colu ...