`

MyBatis 3.0 实现数据的增删查改操作

 
阅读更多

如果对Mybatis还未入门的请看

 

http://josh198331.iteye.com/blog/1751163

 

 

本文是在MyBatis入门基础之上进行修改而来

 

一.修改UserMapper类增加对应的接口

import java.util.List;
public interface UserMapper {
 // 可以通过注入的方式生成映射本例不采用,本例采用Xml映射方式
 // @Select("select * from user where username = #{username}")
 public User getUser(String username);
 /**
  * 增加一个用户
  * 
  * @param user
  */
 public void addUser(User user);
 /**
  * 查询所有用户
  * 
  * @return
  */
 public List<User> queryAll();
 /**
  * 根据ID查找用户
  * 
  * @param id
  * @return
  */
 public User getUserById(int id);
 /**
  * 修改一个用户
  * 
  * @param user
  */
 public void update(User user);
}

二.修改配置文件(user.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.fly31.mybatis.UserMapper">
 <!-- 下面这段代码可有可无,如果没有的话可以在mapper类中通过注解的方式实现 -->
 <!-- 用户名不可重复 -->
 <select id="getUser" parameterType="java.lang.String"
  resultType="User">
  select * from user where username = #{username}
 </select>
 <select id="getUserById" parameterType="int"
  resultType="User">
  select * from user where id = #{id}
 </select>
 
 <!--查询所有记录-->
 <select id="queryAll" resultType="User">select * from user</select>
 <!-- 增加一个user -->
 <insert id="addUser" parameterType="User" >
  insert into user(id, username, password)
  values (#{id},#{username}, #{password})
 </insert>
 <!-- 更新数据库 -->
 <update id="update" parameterType="User">
 update user set username = #{username},password = #{password} where id=#{id}
 </update>
</mapper>

说明:namespace在3.0一下可能不是很重要,在3.0及以上版本,命名空间很重要,必须要配置。

         select:用于查询

         id:是一个唯一标示,由于没有实现类,用默认mybatis的默认实现,所有id要用UserMapper 的方法名。

         resultType:结果类型,如果返回的是个结果集,类型为结果集单元的类型

         parameterType:参数类型,用#{……}可以取他的属性值。

 

三.写测试类 (MyBatisTest)我这里用的是junit 4

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import com.fly31.mybatis.User;
import com.fly31.mybatis.UserMapper;
import com.fly31.utils.MyBatisUtil;

public class MyBatisTest {
	@Test
	public void testGetUserByName() {
		// 获取SqlSession
		SqlSession session = MyBatisUtil.getSession();
		// 获取Mapper
		UserMapper userMapper = session.getMapper(UserMapper.class);
		// 执行sql
		User user = userMapper.getUser("aaa");
		if (user != null) {
			System.out.println("username:" + user.getUsername() + ", password:"
					+ user.getPassword());
		}
		session.close();
	}

	@Test
	public void testGetAllUser() {
		// 获取SqlSession
		SqlSession session = MyBatisUtil.getSession();
		// 获取Mapper
		UserMapper userMapper = session.getMapper(UserMapper.class);
		List<User> list = userMapper.queryAll();
		for (User user : list) {
			System.out.println("username:" + user.getUsername() + ", password:"
					+ user.getPassword());
		}
		session.close();
	}

	@Test
	public void testAddUser() {
		User user = new User();
		user.setId(3);
		user.setUsername("ccc");
		user.setPassword("123");
		// 获取SqlSession
		SqlSession session = MyBatisUtil.getSession();
		// 获取Mapper
		UserMapper userMapper = session.getMapper(UserMapper.class);
		userMapper.addUser(user);
		session.commit();
	}

	@Test
	public void testUpdateUser() {
		// 获取SqlSession
		SqlSession session = MyBatisUtil.getSession();
		// session.commit(false);
		// 获取Mapper
		UserMapper userMapper = session.getMapper(UserMapper.class);
		// 执行sql
		User user = userMapper.getUser("bbb");
		user.setUsername("josh22");
		userMapper.update(user);
		session.commit();
		session.close();
	}

	@Test
	public void testGetUserById() {
		// 获取SqlSession
		SqlSession session = MyBatisUtil.getSession();
		// 获取Mapper
		UserMapper userMapper = session.getMapper(UserMapper.class);
		// 执行sql
		User user = userMapper.getUserById(2);
		if (user != null) {
			System.out.println("username:" + user.getUsername() + ", password:"
					+ user.getPassword());
		}
		session.close();
	}
}

 

 

 

分享到:
评论

相关推荐

    mybatis实现对数据的增删查改实例详解

    在本文中,我们将深入探讨如何使用MyBatis这一流行的持久层框架来实现对数据库数据的增删查改(CRUD)操作。MyBatis是一个轻量级的Java框架,它允许开发者将SQL语句与Java代码直接绑定,从而简化了数据访问层的开发...

    baomidou-mybatis-plus-3.0.zip

    首先,Mybatis-Plus的核心功能之一是提供了丰富的API,包括单表操作(如增删查改)、条件构造器(QueryWrapper和UpdateWrapper)、分页插件以及自定义全局配置等。这些API极大地减少了开发者编写SQL语句的工作量,...

    Mybatis 入门小例子

    它允许开发者将SQL语句直接写在XML配置文件或注解中,与Java对象映射,实现数据的增删查改。下面,我们将通过这个“Mybatis 入门小例子”来深入理解Mybatis的核心概念和基本使用。 1. **环境搭建** 在开始Mybatis...

    mybatis-3-config.dtd mybatis-3-mapper.dtd

    映射文件通常以`.xml` 结尾,如`UserMapper.xml`,并包含增删查改(CRUD)操作的SQL语句。映射文件的主要元素包括: 1. `&lt;mapper&gt;`:映射文件的根元素,通常包含ID、namespace(命名空间)等属性。 2. `&lt;select&gt;`:...

    mybatis的两个dtd文件

    每个Mapper文件定义了与Java接口相对应的SQL操作,包括增删查改。`mybatis-3-mapper.dtd`定义了如`mapper`、`resultMap`、`select`、`insert`、`update`、`delete`等元素,这些都是构建SQL查询和结果映射的关键组成...

    ibatis3.0中文文档和英文文档

    3. **SqlSession与SqlSessionFactory**:SqlSession是执行SQL的会话对象,负责执行增删查改操作;SqlSessionFactory则是创建SqlSession的工厂,一般在应用启动时创建一次,之后重复使用。 4. **Mapper接口与XML映射...

    【SpringBoot探索五】SpringBoot项目集成Mybatis框架参考代码

    Mapper接口通常会包含数据库操作的方法,如增删查改,而XML文件则定义了SQL语句和结果映射。例如: ```java // UserMapper.java public interface UserMapper { User selectUserById(Long id); void insertUser...

    iBatis增、删、查可运行实例

    iBatis是一个轻量级的Java持久层框架,它与SQL紧密集成,允许开发者编写动态的SQL,将数据库操作逻辑封装在映射文件或代码中,从而实现数据访问的灵活性和高效性。在这个"iBatis增、删、查可运行实例"中,我们将深入...

    自己大二时写的SSM框架总结

    - Mapper接口通常包含增删查改等操作的方法声明,实际的SQL语句写在与接口同名的XML文件中。 6. **编写Mapper XML文件**: - 在`resources`目录下创建与Mapper接口同名的XML文件,其中包含具体的SQL语句和结果...

    JAVA WEB 实例

    3. **DAO(Data Access Object)设计模式**:用于封装数据库操作,提供对数据的增删查改功能,使得业务逻辑与数据访问层解耦。 4. **Session与Cookie**:在用户登录状态管理中,Session和Cookie发挥着关键作用。...

    mybais框架学习总结

    通过以上步骤,我们已经完成了使用 MyBatis 进行用户增删查改的基本操作。需要注意的是,为了确保程序的健壮性和可维护性,还需要对异常处理、事务管理等方面进行进一步的学习和完善。 MyBatis 框架提供了一个灵活...

Global site tag (gtag.js) - Google Analytics