MYBATIS教程 – 修改数据

本章将详细介绍MyBatis的数据修改操作。

准备数据

我们已经在前面章节中创建了数据库,如没有数据,可参考前面章节MYBATIS教程 – 环境搭建创建。

UserMapper.xml映射文件

UserMapper.xml映射文件中将包含所有User相关sql映射语句。

首先读取一个用户信息,然后修改信息并保存,然后查询修改后的用户信息,确认是否修改成功。

在映射文件中添加Select语句与update语句。如下所示:

<?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">

    <resultMap id="result" type="User">
        <result property="id" column="id" />
        <result property="name" column="name" />
    </resultMap>

    <select id="getById" parameterType="long" resultMap="result">
        SELECT * FROM User WHERE ID = #{id};
    </select>

    <update id="update" parameterType="User">
        UPDATE User SET name = #{name}
        WHERE ID = #{id};
    </update>

</mapper>

参数类型可以是任何类型,如int、float、double或任何类,本例中参数类型User,即在调用SqlSession类的方法时,将传入User类的对象。

App.java

应用程序main类文件。

App.java

package com.qikegu.demo;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class App { 

   public static void main(String args[]) throws IOException{

      Reader reader = Resources.getResourceAsReader("MybatisConfig.xml");
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);       
      SqlSession session = sqlSessionFactory.openSession();

      System.out.println("------------ 读取用户详情 -----------");  
      User user1 = (User) session.selectOne("User.getById", 2L); 

      System.out.println(user1.getId());
      System.out.println(user1.getName());

      System.out.println("读取用户详情成功");  

      System.out.println("------------ 修改用户 -----------");
      user1.setName("userNameUpdated");
      session.update("User.update", user1);
      session.commit();

      // 查询修改后的用户详情
      User user2 = (User) session.selectOne("User.getById", 2L); 
      System.out.println(user2.getId());
      System.out.println(user2.getName());
      System.out.println("修改用户成功");

      session.commit();
      session.close();   
   }

}

运行

运行输出:

------------ 读取用户详情 -----------
2
userNameUpdated
读取用户详情成功
------------ 修改用户 -----------
2
userNameUpdated
修改用户成功

例子源码

mybatis-demo1



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载