「Mybatis实战三」:Mybatis实现数据更新详析

本文详细介绍了如何在Mybatis中通过修改映射文件和测试类进行数据查询、插入和更新操作,包括`UserMapper.xml`中的SQL编写及`SqlSession`的使用。
摘要由CSDN通过智能技术生成

一、前言

​ 本文将在 Mybatis初体验:一小时从入门到运行你的第一个应用 所构建的基础代码结构之上,并实现利用Mybatis进行数据更新的操作。

二、代码演示

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="user">
    <!--  查询所有用户  -->
    <select id="findAll" resultType="domain.User">
        select *
        from user
    </select>

    <!--新增用户-->
    <!--#{} : mybatis中的占位符,等同于JDBC中的
        parameterType :指定接收到的参数类型 -->
    <insert id="save" parameterType="domain.User">
        insert into user(username, birthday, sex, address)
        values (#{username}, #{birthday}, #{sex}, #{address})
    </insert>

    <!--  更新用户  -->
    <update id="update" parameterType="domain.User">
        update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
    </update>

</mapper>

2、修改测试类

package test;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import domain.User;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;

public class MybatisTest {

    @Test
    public void test() throws IOException {
        //加载核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");

        //获取SqlSessionFactory工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);

        //获取SqlSession会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        List<User> list = sqlSession.selectList("user.findAll");
        for (User user : list) {
            System.out.println(user);
        }

        //释放资源
        sqlSession.close();


    }

    @Test
    public void testInsert() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        //执行更新
        User user = new User();
        user.setUsername("lily");
        user.setBirthday(new Date());
        user.setSex("女");
        user.setAddress("杭州");
        sqlSession.insert("user.save", user);

        //DML语句需要手动提交事务
        sqlSession.commit();

        sqlSession.close();

    }

    @Test
    public void testUpdate() throws IOException {
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        User user = new User();
        user.setId(1);
        user.setUsername("钱三");
        user.setBirthday(new Date());
        user.setSex("男");
        user.setAddress("深圳");
        //更新操作
        sqlSession.update("user.update", user);

        sqlSession.commit();

        sqlSession.close();

    }


}

3、测试结果

在这里插入图片描述

总结

  • 修改语句使用update标签
  • 修改操作使用的API是sqlSession.update(“命名空间.id”,实体对象);
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值