• 2 . Mybatis — 增-删-改


     数据库是 test,表是user,,Bean那些已经准备好 自己去get and  set 和 toString 等..

    1、导入gav

    2、编写配置文件(核心配置 和 映射配置)

     我们学了最基础的 查询。现在操作 增加操作:

    核心配置文件:

    <?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="crud">
        <!--插入 那就是插入标签 parameterType 表示那个对象是占位符数据的来源对象-->
        <insert id="insertDemo" parameterType="com.bihu.Bean.User">
            <!-- 下面这条是语句 其中不是用? 作占位符,是用#{} 花括号内写入占位符数据来源对象的字段即可-->
           insert into user values(#{id},#{username},#{password})
       </insert>
    </mapper>
    映射配置文件

    映射配置文件:

    <?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="crud">
        <!--插入 那就是插入标签 parameterType 表示那个对象是占位符数据的来源对象-->
        <insert id="insertDemo" parameterType="com.bihu.Bean.User">
            <!-- 下面这条是语句 其中不是用? 作占位符,是用#{} 花括号内写入占位符数据来源对象的字段即可-->
           insert into user values(#{id},#{username},#{password})
       </insert>
    </mapper>
    映射配置文件

    3.编写测试类

    import com.bihu.Bean.User;
    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 java.io.IOException;
    import java.io.InputStream;
    
    
    public class MybatisTest {
    
        @Test
        public void db_show() throws IOException {
    
            //因为插入操作数据对象是 冲 前端->Controller->Service->DAO层   所以这里模拟下DAO层
            User user = new User();
            user.setId(10088);
            user.setUsername("BiHu");
            user.setPassword("123456");
    
            InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //因为是插入操作 所以这里是 insert方法,第二个参数是 占位符数据源
            sqlSession.insert("crud.insertDemo",user);
            //因为我们是更新操作 所以要提交事务 ,查询不需要
            sqlSession.commit();
            sqlSession.close();
        }
    
    
    
    }
    插入数据 - 测试类

    4.查看数据库

    插入操作完事!


    更改操作:【其实也可以单条件和多条件 看你喜欢】

    核心配置文件不用改 用最上面那个一样的。。。。

    映射文件:

    <?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="crud">
            <!--更新 那就是update标签 parameterType 表示那个对象是占位符数据的来源对象-->
           <update id="updateTest" parameterType="com.bihu.Bean.User">
               update user set username = #{username},password = #{password} where id = #{id}
           </update>
        </mapper>
    映射文件

    测试文件:

    import com.bihu.Bean.User;
    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 java.io.IOException;
    import java.io.InputStream;
    
    
    public class MybatisTest {
    
        @Test
        public void db_show() throws IOException {
    
            //因为更新操作数据对象是 从 前端->Controller->Service->DAO层   所以这里模拟下DAO层
            User user = new User();
            user.setId(10088);
            user.setUsername("LZ");
            user.setPassword("654321");
    
            InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //因为是插入操作 所以这里是 update方法,第二个参数是 占位符数据源
            sqlSession.update("crud.updateTest",user);
            //因为我们是更新操作 所以要提交事务 ,查询不需要
            sqlSession.commit();
            sqlSession.close();
        }
    
    
    
    }
    测试文件

     完事!


    删除操作  更新和删除都存在条件,分 单条件(一个条件)  和 多条件(多个条件判断),这样 映射文件中的占位符就会有两种写法:

    单条件删除:

    核心配置文件不变 依照最上面那个来写:

    映射文件:

    <?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="crud">
            <!--删除操作 那就是delete标签 parameterType 表示那个对象是占位符数据的来源对象-->
            <!--因为这是单条件写法 下面的parameterType是Integer型的 占位符中写什么都可以 但一定的是Integer型的-->
           <delete id="deleteTest" parameterType="java.lang.Integer">
                delete from user where id = #{random}
            </delete>
        </mapper>
    映射配置文件

    测试类:

    import com.bihu.Bean.User;
    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 java.io.IOException;
    import java.io.InputStream;
    
    
    public class MybatisTest {
    
        @Test
        public void db_show() throws IOException {
    
            InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //因为是删除操作 所以这里是 delete方法,第二个参数是 占位符数据源
            sqlSession.delete("crud.deleteTest",10088);
            //因为我们是更新操作 所以要提交事务 ,查询不需要
            sqlSession.commit();
            sqlSession.close();
        }
    
    
    
    }
    测试类

     ID为10088 的 LZ就被删除了

    所以这里要注意的就是   parameterType 。

    多条件删除

    映射文件:

    <?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="crud">
            <!--删除操作 那就是delete标签 parameterType 表示那个对象是占位符数据的来源对象-->
           <delete id="deleteTest" parameterType="com.bihu.Bean.User">
                delete from user where id = #{id} and username = #{username}
            </delete>
        </mapper>
    映射文件

    测试类:

    import com.bihu.Bean.User;
    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 java.io.IOException;
    import java.io.InputStream;
    
    
    public class MybatisTest {
    
        @Test
        public void db_show() throws IOException {
    
            //模拟数据来源
            User user = new User();
            user.setId(3);
            user.setUsername("qq333");
            user.setPassword("565de98");
    
            InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //因为是删除操作 所以这里是 delete方法,第二个参数是 占位符数据源
            sqlSession.delete("crud.deleteTest",user);
            //因为我们是更新操作 所以要提交事务 ,查询不需要
            sqlSession.commit();
            sqlSession.close();
        }
    
    
    
    }
    测试类

     qq333就没了...这是 ID +  usename 的删除操作。

     

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/15122211.html

  • 相关阅读:
    图解+代码|常见限流算法以及限流在单机分布式场景下的思考
    Kafka处理请求的全流程分析
    Kafka索引设计的亮点
    从0到1搭建大数据平台之调度系统
    从0到1搭建大数据平台之计算存储系统
    如何设计数据中台
    Vertica的这些事<十>—— vertica中group by 和join 语句的优化
    Vertica的这些事<七>—— VSQL常用命令
    Vertia的这些事<一>—— 关于vertica的常用操作
    Vertica的这些事(十五)——Vertica报错TM
  • 原文地址:https://www.cnblogs.com/bi-hu/p/15122211.html
Copyright © 2020-2023  润新知