MyBatis入门程序之客户添加、更新与删除

时间:2024-10-22 07:54:53

【图书介绍】《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》-****博客

《Spring+Spring MVC+MyBatis从零开始学 视频教学版 第3版+整合开发实战+快速开发与项目实战+框架技术精讲与整合案例 计算机与互联网 编程语言与程序设计 Spring+Sprin》【摘要 书评 试读】- 京东图书

添加客户

在MyBatis的映射文件中,添加操作是通过<insert>元素来实现的。例如,向数据库中的t_user表中插入一条数据可以通过如下配置来实现:

<!--添加用户信息 --> 
<insert id="addUser" parameterType="com.ssm.po.User">
    insert into t_user(username,jobs,phone)values(#{username}, #{jobs},#{phone})
</insert>

在上述配置代码中,传入的参数是User类型的。在该类型的参数对象被传递到语句中时,#{username}会查找参数对象User的username属性(#{jobs}和#{phone}也是一样的),并将其属性值传入SQL语句中。

【示例6-3】为了验证上述配置是否正确,下面编写一个测试方法来执行添加操作。

在测试类MybatisTest中添加测试方法addUserTest(),其代码如下所示:

@Test
public void addUserTest() throws Exception {
String resource = "mybatis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = 
new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //创建User对象,并向对象中添加数据
    User user = new User();
    user.setUsername("tom");
    user.setJobs("worker");
    user.setPhone("13624589654");
    //执行SqlSession的插入方法,返回SQL语句影响的行数
    int rows = sqlSession.insert("com.ssm.mapper.UserMapper.addUser", user);
    //通过返回结果判断插入操作是否执行成功
    if (rows > 0) {
        System.out.println("成功添加" + rows + "条数据!");
    } else {
        System.out.println("添加数据失败!");
    }
    //提交事务
    sqlSession.commit();
    //关闭SqlSession
    sqlSession.close();
}

上述代码中,创建了User对象,并向User对象中添加了属性值;然后通过SqlSession对象的insert()方法执行插入操作,并通过该操作返回的数据来判断插入操作是否执行成功;最后通过SqlSession的commit()方法提交事务,并通过SqlSession.close()方法关闭了SqlSession。

更新用户

MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的。如果需要更新用户数据,可以通过如下代码配置来实现:

<!--更新用户信息 -->
<update id="updateUser" parameterType="com.ssm.po.User">
    update t_user set username=#{username},jobs=#{jobs},phone=#{phone} where id=#{id}
</update>  

与插入数据的配置相比,更新操作配置中的元素与SQL语句都发生了相应变化,但其属性名却没有变。

【示例6-4】为了验证配置是否正确,下面以6.2.2节中新插入的数据为例进行更新用户测试。

在测试类MybatisTest中添加测试方法updateUserTest(),将id为4的用户的jobs属性值修改为“teacher”,其代码如下所示:

@Test
public void updateUserTest() throws Exception {
	String resource = "mybatis-config.xml";
	InputStream inputStream = Resources.getResourceAsStream(resource);
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	SqlSession sqlSession = sqlSessionFactory.openSession();
    //创建User对象,并对对象中的数据进行模拟更新
	User user = new User();
	user.setId(4);
	user.setUsername("tom");
	user.setJobs("teacher");
	user.setPhone("13624589654");
    //执行SqlSession的更新方法,返回SQL语句影响的行数
	int rows = sqlSession.update("com.ssm.mapper.UserMapper.updateUser", user);
	if (rows > 0) {
		System.out.println("成功修改了" + rows + "条数据!");
	} else {
		System.out.println("修改数据失败!");
	}
	sqlSession.commit();
	sqlSession.close();
}

与添加用户的方法相比,更新操作的代码增加了id属性值的设置,并调用SqlSession的update()方法对id为4的用户的jobs属性值进行了修改。

删除用户

MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。在映射文件UserMapper.xml中添加删除客户信息的SQL语句,其示例代码如下:

<!--删除用户信息-->
<delete id="deleteUser" parameterType="Integer">
    delete from t_user where id=#{id}
</delete>

从上述配置的SQL语句中可以看出,我们只需要传递一个id值就可以将数据表中相应的数据删除掉。要测试删除操作的配置十分简单,只需使用SqlSession对象的delete()方法传入需要删除数据的id值即可。

【示例6-5】在测试类MybatisTest中添加测试方法deleteUserTest(),该方法用于将id为4的用户信息删除,其代码如下所示:

@Test
public void deleteUserTest() throws Exception {
	String resource = "mybatis-config.xml";
	InputStream inputStream = Resources.getResourceAsStream(resource);
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	SqlSession sqlSession = sqlSessionFactory.openSession();
    //执行SqlSession的删除方法,返回SQL语句影响的行数
	int rows = sqlSession.delete("com.ssm.mapper.UserMapper.deleteUser", 4);
	if (rows > 0) {
		System.out.println("成功删除了" + rows + "条数据!");
	} else {
		System.out.println("删除数据失败!");
	}
	sqlSession.commit();
	sqlSession.close();
}

至此,MyBatis入门程序的增、删、改、查操作已经讲解完了。关于程序中映射文件和配置文件中的元素信息,将在第7章详细讲解,本章只需要了解所使用的元素即可。