`

myBatis系列之三:增删改查

阅读更多
myBatis系列之一:搭建开发环境
myBatis系列之二:以接口方式交互数据
myBatis系列之四:关联数据的查询
myBatis系列之五:与Spring3集成
myBatis系列之六:与SpringMVC集成
myBatis系列之七:事务管理


1. 查询

myBatis系列之二:以接口方式交互数据实现了单条记录的查询,这里查询一组记录:

IUserMapper接口添加下面方法:
List<User> getUsers(String name);


在User.xml中添加:
	<resultMap type="User" id="userList"><!-- type为返回列表元素的类全名或别名 -->
		<id column="id" property="id" />
		<result column="name" property="name" />
		<result column="age" property="age" />
		<result column="address" property="address" />
	</resultMap>

	<select id="getUsers" parameterType="string" resultMap="userList"><!-- resultMap为上面定义的User列表 -->
		select * from `user` where name like #{name}
	</select>


测试方法:
	@Test
	public void queryListTest() {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			IUserMapper mapper = session.getMapper(IUserMapper.class);
			List<User> users = mapper.getUsers("%a%"); // %在sql里代表任意个字符。
			for (User user : users) {
				log.info("{}: {}", user.getName(), user.getAddress());
			}
		} finally {
			session.close();
		}
	}


2. 新增

IUserMapper接口添加下面方法:
int addUser(User user);


User.xml添加:
	<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"><!-- useGeneratedKeys指定myBatis使用数据库自动生成的主键,并填充到keyProperty指定的属性上。如果未指定,返回对象拿不到生成的值 -->
		insert into user(name,age,address) values(#{name},#{age},#{address})
	</insert>


测试方法:
	@Test
	public void addUserTest() {
		User user = new User("Lucy", 102, "Happy District");
		SqlSession session = sqlSessionFactory.openSession();
		try {
			IUserMapper mapper = session.getMapper(IUserMapper.class);
			int affectedCount = mapper.addUser(user);
			session.commit(); // 默认为不自动提交。调用session.getConnection().getAutoCommit()查看
			log.info("{} new record was inserted successfully whose id: {}", affectedCount, user.getId());
		} finally {
			session.close();
		}
	}


3. 更新

接口添加方法:
int updateUser(User user);


User.xml添加:
	<update id="updateUser" parameterType="User">
		update `user` set name=#{name}, age=#{age}, address=#{address}
		where id=#{id}
	</update>


测试方法:
	@Test
	public void updateUserTest() {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			IUserMapper mapper = session.getMapper(IUserMapper.class);
			User user = mapper.getUserById(8);
			user.setAddress("Satisfied District");
			int affectedCount = mapper.updateUser(user); // 除了要修改的属性外,user的其它属性也要赋值,否则这些属性会被数据库更新为初始值(null或0等),可以先查询一次,但这样会增加和数据库不必要的交互。后面的条件判断能避免此问题。
			log.info("Affected count: {}", affectedCount);
			session.commit();
		} finally {
			session.close();
		}
	}


4. 删除

接口添加方法:
int deleteUser(int id);


User.xml添加:
	<delete id="deleteUser" parameterType="int">
		delete from `user` where id=#{id}
	</delete>


测试方法:
	@Test
	public void deleteUserTest() {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			IUserMapper mapper = session.getMapper(IUserMapper.class);
			int affectedCount = mapper.deleteUser(8);
			log.info("Affected count: {}", affectedCount);
			session.commit();
		} finally {
			session.close();
		}
	}


参考:
http://www.yihaomen.com/article/java/305.htm
分享到:
评论

相关推荐

    mybatis 整合oracle (含增删改查)

    在实际开发中,将 MyBatis 整合到 Oracle 数据库进行数据操作,包括增删改查,是常见的需求。以下将详细介绍这个过程。 1. **环境准备** - **Oracle 数据库**:首先确保你已经安装并配置了 Oracle 数据库,创建好...

    SpringBoot+mybatis+增删改查完整源码

    在本项目中,我们主要探讨的是如何利用SpringBoot框架与Mybatis进行数据库的增删改查操作。SpringBoot以其简洁的配置和快速的启动能力,成为现代Java开发中的热门选择,而Mybatis作为轻量级的持久层框架,提供灵活的...

    springboot+mybatis-plus+gradle+mysql+swagger基础增删改查、树形查询

    本项目基于一系列技术栈,包括Spring Boot、MyBatis Plus、Gradle、MySQL和Swagger,实现了一个基础的增删改查(CRUD)功能,并提供了树形查询的能力。下面将详细介绍这些技术及其在项目中的应用。 **1. Spring ...

    myBatis3.2.7增删改查 源码

    标题 "myBatis3.2.7增删改查 源码" 指的是一个关于myBatis 3.2.7版本的数据库操作框架的源代码资源,主要涉及的是基本的CRUD(创建Create、读取Read、更新Update、删除Delete)功能的实现。myBatis是一个优秀的持久...

    myBatis系列之一:搭建开发环境

    例如,用户表的增删改查可以这样设计: ```java public interface UserMapper { User selectUserById(int id); void insertUser(User user); void updateUser(User user); void deleteUser(int id); } ``` ```...

    MyBatis的项目。实现增删改查,以及多表联查和对标签的使用。批量删除。

    在本项目中,我们将深入探讨MyBatis如何实现增删改查(CRUD)操作,多表联查,以及标签(Tags)的使用,并涵盖批量删除的功能。以下是关于这些主题的详细讲解。 1. **增删改查(CRUD)操作**: - **创建(Create)...

    springboot+mybatis+easyui增删改查分页Demo

    【标题】"springboot+mybatis+easyui增删改查分页Demo"是一个基于Spring Boot、MyBatis和EasyUI实现的Web应用程序示例,主要用于演示如何在这些技术栈中进行基本的数据操作,如添加(Add)、删除(Delete)、修改...

    springmvc+mybatis+easyUI(增删改查)Demo

    【SpringMVC+MyBatis+EasyUI 增删改查 Demo】是一个经典的Web开发教程,适合初学者上手。这个项目集成了三个关键的技术框架:SpringMVC作为控制器层,MyBatis作为持久层,EasyUI作为前端界面组件库,实现了基本的...

    MyBatis+struts2+spring+mysql整合增删改查

    6. **增删改查操作**:在实际应用中,开发者通常会创建一系列的Mapper接口和XML映射文件,用于定义SQL语句。在Service层,通过Spring的@Autowired注解注入DAO,调用其方法实现数据的CRUD操作。Struts2的Action作为...

    java实现增删改查使用Oracle数据库

    对于初学者来说,掌握如何使用Java操作Oracle数据库进行增删改查是基础且重要的技能。本教程将围绕这个主题展开,帮助你入门这一领域的知识。 一、Java数据库连接(JDBC) 在Java中与Oracle数据库交互,首先需要...

    spring+struts2+mybatis+bootstrap简单增删改查

    这个项目结合了这三个框架,以及Bootstrap前端框架,构建了一个基础的增删改查(CRUD)应用,非常适合初学者学习和理解。下面将详细解释这些框架的核心概念及其在项目中的作用。 1. Spring框架: Spring 是一个...

    Springboot+MyBatis+MyBatisPlus+MySQL+Bootstrap增删改查登录分页源码+数据库

    本项目结合这些技术,提供了完整的增删改查(CRUD)功能,以及登录和分页的实现,为初学者提供了一个良好的学习示例。 首先,SpringBoot是Spring框架的简化版,它集成了大量的常用组件,并且通过内嵌Tomcat服务器,...

    spring+springMVC+mybatis+easyui 增删查改以及分页源码

    标题 "spring+springMVC+mybatis+easyui 增删查改以及分页源码" 描述了一个使用SSM(Spring、SpringMVC、MyBatis)框架与EasyUI前端库联合实现的Web应用项目,特别是关注于CRUD(创建、读取、更新、删除)操作和无...

    mybatis-plus案例 方法 一系列配置 增删改查

    这个案例将向我们展示如何使用MyBatis-Plus进行基本的增删改查(CRUD)操作,并且实现自定义SQL的功能。下面,我们将详细讨论MyBatis-Plus的核心特性、配置以及具体的方法使用。 首先,MyBatis-Plus的核心特性包括...

    Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一)

    本篇文档主要介绍了一个使用Spring Boot、MyBatis、Vue.js和ElementUI组合实现的增删改查实例。该实例包含后端的Spring Boot和MyBatis技术栈,以及前端的Vue.js框架和ElementUI组件库,目的是实现一个简单的数据管理...

    struts2增删改查

    在这个"struts2增删改查"项目中,开发者利用Struts2框架实现了对Oracle数据库中Emp和Dept两个表的数据操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)功能。以下是对这个项目涉及的关键知识...

    自定义框架实现用户增删改查

    这里我们关注的是如何使用自定义框架来实现用户管理中的基本操作:增删改查。这个主题通常涉及到Web开发,尤其是Java平台上的MVC(Model-View-Controller)架构,例如Struts框架。以下将详细介绍这一过程。 首先,...

    struts2框架 spring框架Ext框架 Mybatis框架 mysql 增删改查

    结合这些框架和数据库,"S2SExtMybatisForMysql增删改查"项目很可能是构建了一个基于Struts2、Spring、Ext和Mybatis的Java Web应用,该应用利用DWR进行前后端通信,通过Ext来设计用户界面,使用Spring管理依赖并处理...

    02-动力节点-学生-毕业设计-超市订单管理_增删改查_会员管理系统_

    "02-动力节点-学生-毕业设计-超市订单管理_增删改查_会员管理系统_" 这个标题表明这是一个由动力节点教育机构的学生在毕业设计项目中完成的作品,主要关注的是超市订单管理和会员管理系统的实现。其中,“增删改查”...

    java 一个根据配置文件对数据库进行增删改查的三层架构解决方法

    具体到数据库的增删改查操作,DAL会提供一系列接口或抽象类,定义了CRUD(Create, Read, Update, Delete)方法。BLL调用这些接口,执行实际的数据操作。例如,创建一个新记录可能对应一个`save()`方法,查询数据可能...

Global site tag (gtag.js) - Google Analytics