• MyBatis 如何使用set标签呢?


    转自:

    MyBatis 如何使用set标签呢?

    set标签的功能简介

    set标签主要用于结合update语句动态更新列信息,
    使用set标签可避免条件末尾多余的逗号


    例 使用 id 修改名称或备注
    UserInfoMapper.xml

    
    
    
        
        
        
            UPDATE UserInfo
            
                name=#{name}
                notes=#{notes}
            
            WHERE id=#{id}
        
    
    
    

    UserInfoMapper 类

    package com.java265.mapper;
    import java.util.List;
    import org.apache.ibatis.annotations.Param;
    import com.java265.po.UserInfo;
    public interface UserInfoMapper {
        public List selectUserInfo(UserInfo site);
       
        public int updateUserInfo(UserInfo site);
    }
    

    测试类

    package com.java265.test;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    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 com.java265.mapper.UserInfoMapper;
    import com.java265.po.UserInfo;
    public class Test {
        public static void main(String[] args) throws IOException {
            InputStream config = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
            SqlSession ss = ssf.openSession();
            UserInfo userInfo = new UserInfo();
            userInfo.setId(1);
            userInfo.setNotes("java爱好者");
            // 执行update语句前
            List userList = ss.getMapper(UserInfoMapper.class).selectUserInfo(userInfo);
            for (UserInfo t : userList) {
                System.out.println(t);
            }
            int num = ss.getMapper(UserInfoMapper.class).updateUserInfo(userInfo);
            System.out.println("影响数据库行数" + num);
            // 执行update语句后
            List userList2 = ss.getMapper(UserInfoMapper.class).selectUserInfo(userInfo);
            for (UserInfo t : userList2) {
                System.out.println(t);
            }
            ss.commit();
            ss.close();
        }
    }
    

    输出结果
    DEBUG [main] - ==> Preparing: SELECT * FROM UserInfo WHERE id=?
    DEBUG [main] - ==> Parameters: 1(Integer)
    DEBUG [main] - <== Total: 1
    UserInfo[id=1,name=王二,notes=java爱好者]
    DEBUG [main] - ==> Preparing: UPDATE UserInfo SET notes=? where id=?
    DEBUG [main] - ==> Parameters: java爱好者(String), 1(Integer)
    DEBUG [main] - <== Updates: 1
    影响数据库行数1
    DEBUG [main] - ==> Preparing: SELECT * FROM UserInfo WHERE id=?
    DEBUG [main] - ==> Parameters: 1(Integer)
    DEBUG [main] - <== Total: 1
    UserInfo[id=1,name=王二,notes=java爱好者]

  • 相关阅读:
    3. 博弈树 (15分)
    【python】OpenCV—Statistics
    Cell:代谢组学肠道微生物群介导生酮饮食的抗癫痫作用
    Dubbo学习
    CSS基础选择器
    Rust入门教程(五):错误处理
    文件内容相关
    孙卫琴的《精通Vue.js》读书笔记-路由管理器的基本用法
    腾讯云新用户:定义、专属福利及优惠活动
    如果不知道这4种缓存模式,敢说懂缓存吗?
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/128066178