MyBatis之二:简单增删改查
这一篇在上一篇的基础上简单讲解如何进行增删改查操作。
一、在mybatis的配置文件conf.xml中注册xml与注解映射
<!-- 注册映射文件 -->
<mappers>
<!-- 通过xml方式映射 -->
<mapper resource="com/mybatis/crud/userMapper.xml" />
<!-- 通过注解方式映射 -->
<mapper class="com.mybatis.crud.IUserMapper" />
</mappers>
二、在这个com.mybatis.crud包下面新建userMapper.xml文件与IUserMapper接口
1、userMapper.xml明细如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mybatis.crud.userMapper"> <insert id="addUser" parameterType="com.mybatis.crud.User">
insert into users(id_id,name_n,age_a) values(#{id},#{name},#{age})
</insert> <delete id="deleteUser" parameterType="int">
delete from users where
id_id=#{id}
</delete> <update id="updateUser" parameterType="com.mybatis.crud.User">
update users set
name_n=#{name},age_a=#{age} where id_id =#{id}
</update> <select id="getAllUsers" resultType="com.mybatis.crud.User"
resultMap="usermap">
select *
from Users
</select> <resultMap type="com.mybatis.crud.User" id="usermap">
<id property="id" column="id_id" />
<result property="name" column="name_n" />
<result property="age" column="age_a" />
</resultMap> <select id="getUser" parameterType="int" resultType="com.mybatis.crud.User"
resultMap="usermap">
select *
from Users where id_id=#{id}
</select>
</mapper>
2、IUserMapper接口定义如下
package com.mybatis.crud; import java.util.List;
import java.util.Properties; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.type.JdbcType; public interface IUserMapper { @Insert("insert into users(id_id,name_n,age_a) values(#{id},#{name},#{age})")
public int add(User user); @Delete("delete from users where id_id=#{id}")
public int deleteById(int id); @Update("update users set name_n=#{name},age_a=#{age} where id_id =#{id}")
public int update(User user); @Select("select * from Users where id_id=#{id}")
@Results({
@Result(property = "id", column = "id_id", jdbcType = JdbcType.INTEGER),
@Result(property = "name", column = "name_n", jdbcType = JdbcType.VARCHAR),
@Result(property= "age", column = "age_a", jdbcType = JdbcType.INTEGER) })
public User getById(int id); @Select("select * from Users")
@Results({
@Result(property = "id", column = "id_id", jdbcType = JdbcType.INTEGER),
@Result(property = "name", column = "name_n", jdbcType = JdbcType.VARCHAR),
@Result(property= "age", column = "age_a", jdbcType = JdbcType.INTEGER) })
public List<User> getAll(); }
三、新建一个获取SqlSessionFactory的工具类
package com.mybatis.util; import java.io.InputStream; import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.mybatis.demo.test; public class MybatisUtils { public static SqlSessionFactory getFactory(){
String resource = "conf.xml";
InputStream inputStream = test.class.getClassLoader().getResourceAsStream(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sessionFactory;
} }
四、实际测试代码如下
package com.mybatis.crud; import java.util.List; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test; import com.mybatis.util.MybatisUtils; public class TestCrud { //方法名称上面F11键 即可运行测试方法 @Test
public void testAdd() {
SqlSessionFactory factory = MybatisUtils.getFactory();
SqlSession session = factory.openSession(true); String statement = "com.mybatis.crud.userMapper.addUser";
User user1 = new User();
user1.setId(199);
user1.setName("wrrrugggcj");
user1.setAge(296);
System.out.println("[xml]新增影响行数:"+session.insert(statement, user1)); User user2 = new User();
user2.setId(198);
user2.setName("wrrrugggcjeee");
user2.setAge(26); IUserMapper userMapper = session.getMapper(IUserMapper.class);
System.out.println("[注解]新增影响行数:"+userMapper.add( user2)); session.close();
} @Test
public void testUpdate() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默认手动提交
SqlSession session = factory.openSession(); String statement = "com.mybatis.crud.userMapper.updateUser";
User user1 = new User();
user1.setId(199);
user1.setName("199");
user1.setAge(89);
System.out.println("[xml]修改影响行数:"+session.update(statement, user1)); User user2 = new User();
user2.setId(198);
user2.setName("198");
user2.setAge(89);
IUserMapper userMapper = session.getMapper(IUserMapper.class);
System.out.println("[注解]修改影响行数:"+userMapper.update(user2)); //提交
session.commit();
session.close(); } @Test
public void testDelete() {
SqlSessionFactory factory = MybatisUtils.getFactory(); SqlSession session = factory.openSession(true); String statement = "com.mybatis.crud.userMapper.deleteUser";
System.out.println("[xml]删除影响行数:"+session.delete(statement,199)); IUserMapper userMapper = session.getMapper(IUserMapper.class);
System.out.println("[注解]删除影响行数:"+userMapper.deleteById(198)); session.close();
} @Test
public void testGetAllusers() {
SqlSessionFactory factory = MybatisUtils.getFactory(); SqlSession session = factory.openSession(true); String statement = "com.mybatis.crud.userMapper.getAllUsers";
List<User> users = session.selectList(statement);
System.out.println("[xml]查询用户列表:"+users); IUserMapper userMapper = session.getMapper(IUserMapper.class);
System.out.println("[注解]查询用户列表:"+userMapper.getAll()); session.close(); }
}
至此,一个基于mybatis的简单增删改就完成了,不过建议在阅读这篇文章的时候先将入门篇看一遍就可以了。
MyBatis之二:简单增删改查的更多相关文章
- idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD
在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/bl ...
- MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...
- Mybatis框架二:增删改查
这里是搭建框架和准备数据: http://www.cnblogs.com/xuyiqing/p/8600888.html 实现增删改查功能: 测试类: package junit; import ja ...
- MyBatis总结二:增删改查
上一篇讲述了MyBatis的快速入门,下面在此基础上进行增删改查的操作: 首先定义dao层的接口: package com.zy.dao; import com.zy.domain.User; imp ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- Redis:五种数据类型的简单增删改查
Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...
- ado.net的简单数据库操作(三)——简单增删改查的实际应用
果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...
- Mybatis实现数据的增删改查
Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...
- 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作
专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...
随机推荐
- 给Java新手的一些建议----Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- 她让我懂得了怎样学习Flash
原文:http://www.asv5.cn/blog/article.asp?id=169 最近忙着寻找两样丢失了很久的东西,都是她帮我找回来的,第一样叫做自信,第二样叫做梦想.也正因为有了她,我才从 ...
- MySQL基础之第2章 Windows平台下安装与配置MySQL
2.1.msi安装包 2.1.1.安装 特别要注意的是,安装前要删除原来的my.ini和原来的data目录,改名也行,不然在最后一步会“apply security settings”报个1045错误 ...
- Jemeter对Oracle数据库性能测试方法
下载Oracle的jdbc数据库驱动包,注意Oracle数据库的版本,这里使用的是:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 ...
- 在xcode上搭建OpenGL3.x运行环境
最近开始学习OpenGL,网上的教程太散乱,于是打算照着红宝书<OpenGL编程指南(第七版)>来学习. 于是在Mac上搭建一下Demo环境.比较方便的是,OS X上已经装了OpenGL ...
- J2SE7规范_2013.2_类
8.1 类的定义 包括普通类和枚举类,枚举(略) 下面都是指普通类: public只能用于外部类,成员类,不能用于局部类,匿名类 protected和private用于成员类时(待解) sta ...
- 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇08:弹幕系统》本系列完结
8.弹幕系统 弹幕系统概述: 弹幕系统的设计体现了射击游戏的基本要素,玩家要在敌人放出的大量子弹(弹幕)的细小空隙间闪避,能在玩家闪躲弹幕的时候给玩家带来快感,接近满屏的子弹,增加了对玩家的视觉冲击力 ...
- Delimiter must not be alphanumeric or backslash 问题及解决
Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in 正则表达 ...
- mark标签:
mark元素表示页面中需要突出或高亮显示的内容,在搜索结果中也常常出现,比如检索结果中的关键词高亮显示. 案例:[html]<!DOCTYPE HTML><html> & ...
- ocp 1Z0-043 1-60题解析
1.You observe that a database performance has degraded overa period of time. While investigating the ...