这一篇在上一篇的基础上简单讲解如何进行增删改查操作。

  一、在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之二:简单增删改查的更多相关文章

  1. idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD

    在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/bl ...

  2. MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多

    一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...

  3. Mybatis框架二:增删改查

    这里是搭建框架和准备数据: http://www.cnblogs.com/xuyiqing/p/8600888.html 实现增删改查功能: 测试类: package junit; import ja ...

  4. MyBatis总结二:增删改查

    上一篇讲述了MyBatis的快速入门,下面在此基础上进行增删改查的操作: 首先定义dao层的接口: package com.zy.dao; import com.zy.domain.User; imp ...

  5. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  6. Redis:五种数据类型的简单增删改查

    Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...

  7. ado.net的简单数据库操作(三)——简单增删改查的实际应用

    果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...

  8. Mybatis实现数据的增删改查

    Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...

  9. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

随机推荐

  1. 解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细

    这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的.以下是一个大概流程: 浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP ...

  2. IO的阻塞、非阻塞、同步、异步

  3. 【转】AVL

    #include <iostream> #include <ctime> #include <queue> #include <cassert> #in ...

  4. Android UI详解之Fragment加载

    使用Fragment的原因: 1. Activity间的切换不流畅 2. 模块化Activity,方便做局部动画(有时为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragmen ...

  5. 2016计蒜之道复赛 百度地图的实时路况 floyd+cdq分治

    链接:https://nanti.jisuanke.com/t/11217 奉上官方题解: 枚举 d(x , y , z) 中的 y,把 y 从这个图中删去,再求这时的全源最短路即可,使用 Floyd ...

  6. [Irving]WPF Invalid character in the given encoding. Line xx, position xx.' XML is not valid.

    WPF开发中发现Xaml界面中突然抽风似的提示错误 Invalid character in the given encoding. Line xx, position xx.' XML is not ...

  7. vc编译器 msvcr.dll、msvcp.dll的含义和相关错误的处理

    转自:http://blog.csdn.net/sptoor/article/details/6203376 很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结, ...

  8. 10款jquery图片广告特效的预览及源码下载 改自[帅的相对论]

    原文格式有问题,我来排版了一下,分享给大家. 1.jQuery仿海尔官网全屏焦点图特效代码 Query仿海尔官网全屏焦点图特效代码,带有左右箭头的jQuery焦点图切换特效.当焦点图切换时,下方的三块 ...

  9. SVM应用

    我在项目中应用的SVM库是国立台湾大学林智仁教授开发的一套开源软件,主要有LIBSVM与LIBLINEAR两个,LIBSVM是对非线性数据进行分类,大家也比较熟悉,LIBLINEAR是对线性数据进行分 ...

  10. Ext列表展现--普通排序sortable--全局排序remoteSort(EXTJS 全局排序问题)

    关于Ext的排序问题,一般涉及到两种方式. A.一种是默认的客户端排序机制,对当前页进行排序.sortable 这种排序模式不用多说,是人都会: 1.可以在Ext.grid.ColumnModel列模 ...