zoukankan      html  css  js  c++  java
  • MyBatis系列(四) MyBatis 增删改

    前言

    通过前几张的博文已经知道MyBatis是如何查询数据库中的数据,现在来介绍增(insert)删(delete)改(update)

    增加

    接口绑定文件定义一个增加方法,方法的返回值为long,在MyBatis中返回的是受影响行数。

    public interface MusicImp {
        public Long getinsertMusic(Music music);
    }

    SQL映射文件

    <?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="com.mybatis.dao.MusicImp">
        
        <insert id="getinsertMusic" parameterType="com.mybatis.bean.Music">
            INSERT INTO test
            (id,name,music,musicurl)
            VALUES
            (#{id},#{name},#{music},#{musicurl});
        </insert>
        
    </mapper>

    测试类

    public void test() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //获取SqlSession对象
            SqlSession addSession = sqlSessionFactory.openSession();
            try {
                MusicImp musicImp = addSession.getMapper(MusicImp.class);
                Music music = new Music(9,"沈宁","还有多少个十年",null);
                long addlong =musicImp.getinsertMusic(music);
                System.out.println(addlong);
                addSession.commit();
            } finally {
                // TODO: handle finally clause
                addSession.close();
            }
        }

    删除

    接口绑定文件定义一个删除方法,方法的返回值为Boolean,Boolean只有两个值要么为真要么为假,使用此返回值可以判断是否删除成功。

    public interface MusicImp {
        public boolean getdelectMusic(int id);
    }

    SQL映射文件

    <?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="com.mybatis.dao.MusicImp">
        
        <delete id="getdelectMusic" parameterType="com.mybatis.bean.Music">
            delete from test
            where id = #{id};
        </delete>
        
    </mapper>

    测试类

        public void test() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //获取SqlSession对象
            SqlSession delectSession = sqlSessionFactory.openSession();
            try {
                MusicImp musicImp = delectSession.getMapper(MusicImp.class);
                boolean deleteboolean = musicImp.getdelectMusic(7);
                System.out.println(deleteboolean);
                delectSession.commit();
            } finally {
                // TODO: handle finally clause
                delectSession.close();
            }
        }

    修改

    接口绑定文件定义一个修改方法,方法的返回值为Boolean,Boolean只有两个值要么为真要么为假,使用此返回值可以判断是否删除成功。

    public interface MusicImp {
        public boolean getupdateMusic(@Param("musicurl")String musicurl,@Param("id")String id);
    }

    SQL映射文件

    <?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="com.mybatis.dao.MusicImp">
        
        <update id="getupdateMusic" parameterType="com.mybatis.bean.Music">
            update test set musicurl = #{musicurl}
            where id = #{id};
        </update>
        
    </mapper>

    测试类

        public void test() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //获取SqlSession对象
            SqlSession updateSession = sqlSessionFactory.openSession();
            try {
                MusicImp musicImp = updateSession.getMapper(MusicImp.class);
                boolean updatemusic = musicImp.getupdateMusic
                        ("http://music.163.com/song/media/outer/url?id=392897.mp3", "5");
                if (updatemusic) {
                    System.out.println("更新成功");
                } else {
                    System.out.println("更新失败");
                }
                
                updateSession.commit();
            } finally {
                updateSession.close();
            }
        }
  • 相关阅读:
    Java并发编程:线程池的使用
    java动态代理实现与原理详细分析
    Springmvc 横向源码原理解析(原创)
    spring事物配置,声明式事务管理和基于@Transactional注解的使用
    Spring IoC的原理为什么是反射而不是new
    Mybatis源码分析(原创)
    Springboot中做定时任务 和 Springboot API 分页
    python程序入门 基础教程
    本地的jar包添加到maven库中 jdbc举例
    基于接口隔离原则的依赖注入实现
  • 原文地址:https://www.cnblogs.com/yogouo/p/12044266.html
Copyright © 2011-2022 走看看