zoukankan      html  css  js  c++  java
  • Mybatis入门(二)增删改查

    上一章我们搭建了Mybatis的环境,这一章我们来实现一下赠删改查,非常简单。

    1、使用上一章配置好的Mybatis来继续操作:

    2、实现增删改查,只需要在UserMapper这个接口里添加方法,和配置一下UserMapper.xml文件即可:

    2.1首先来实现增:

    UserMapper接口:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    
    import java.util.List;
    
    public interface UserMapper {
    
        List<User> getUser();
    
        //添加增方法
        int getinsert(User user);
    }

    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">
    <!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
    <mapper namespace="com.hdlf.dao.UserMapper">
        <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
        <select id="getUser" resultType="com.hdlf.pojo.User">
            SELECT * FROM mybatis.user
        </select>
    
        <!--增方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
        <insert id="getinsert" parameterType="com.hdlf.pojo.User" >
            INSERT INTO mybatis.user(id,name,pwd) values (#{id},#{name},#{pwe})
        </insert>
    </mapper>

    UserMapperTest测试类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    import com.hdlf.utils.Mybatisconfig;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import java.util.List;
    
    public class UserMapperTest {
        @Test
        public void test(){
    
            //第一步,获得sqlsession对象
            SqlSession sqlSession = Mybatisconfig.getSqlSession();
            //执行sql
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //插入数据
            int s = mapper.getinsert(new User(2,"李四","1234567890"));
    
            //还需要提交事务 不然插入不成功(重要!!!)
            sqlSession.commit();
            //关闭sqlSession
            sqlSession.close();
        }
    
    
    }

    结果显示插入成功:

    2.2删方法实现:

    UserMapper接口类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    
    import java.util.List;
    
    public interface UserMapper {
    
        List<User> getUser();
    
        //添加增方法
        int getinsert(User user);
    
        //删方法
        int getdelete(int id);
    }

    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">
    <!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
    <mapper namespace="com.hdlf.dao.UserMapper">
        <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
        <select id="getUser" resultType="com.hdlf.pojo.User">
            SELECT * FROM mybatis.user
        </select>
    
        <!--增方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
        <insert id="getinsert" parameterType="com.hdlf.pojo.User" >
            INSERT INTO mybatis.user(id,name,pwd) values (#{id},#{name},#{pwe})
        </insert>
    
        <!--删方法,接收值是int类型,这样可以根据id来删除方便-->
        <delete id="getdelete" parameterType="int">
            DELETE FROM mybatis.user WHERE id = #{id}
        </delete>
    </mapper>

    UserMapperTest测试类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    import com.hdlf.utils.Mybatisconfig;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import java.util.List;
    
    public class UserMapperTest {
    
        @Test
        public void test(){
    
            //第一步,获得sqlsession对象
            SqlSession sqlSession = Mybatisconfig.getSqlSession();
            //执行sql
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    
            mapper.getdelete(5);
    
            //还需要提交事务 不然插入不成功(重要!!!)
            sqlSession.commit();
            //关闭sqlSession
            sqlSession.close();
        }
    
    
    }

    结果前: 

    结果后:

    可以看到,王五的儿子被删除了

    2.3改方法实现:

    UserMapper接口类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    
    import java.util.List;
    
    public interface UserMapper {
    
        List<User> getUser();
    
        //添加增方法
        int getinsert(User user);
    
        //删方法
        int getdelete(int id);
    
        //改方法
        int getupdate(User user);
    }

    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">
    <!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
    <mapper namespace="com.hdlf.dao.UserMapper">
        <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
        <select id="getUser" resultType="com.hdlf.pojo.User">
            SELECT * FROM mybatis.user
        </select>
    
        <!--增方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
        <insert id="getinsert" parameterType="com.hdlf.pojo.User" >
            INSERT INTO mybatis.user(id,name,pwd) values (#{id},#{name},#{pwe})
        </insert>
    
        <!--删方法,接收值是int类型,这样可以根据id来删除方便-->
        <delete id="getdelete" parameterType="int">
            DELETE FROM mybatis.user WHERE id = #{id}
        </delete>
    
        <!--改方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
        <update id="getupdate" parameterType="com.hdlf.pojo.User">
            update mybatis.user set name=#{name},pwd=#{pwe} where id=#{id};
        </update>
    </mapper>

    UserMapperTest测试类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    import com.hdlf.utils.Mybatisconfig;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import java.util.List;
    
    public class UserMapperTest {
    
        @Test
        public void test(){
    
            //第一步,获得sqlsession对象
            SqlSession sqlSession = Mybatisconfig.getSqlSession();
            //执行sql
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //修改数据
            mapper.getupdate(new User(3,"冒牌李四","0987654321"));
    
            //还需要提交事务 不然插入不成功(重要!!!)
            sqlSession.commit();
            //关闭sqlSession
            sqlSession.close();
        }
    
    
    }

    结果前: 

    结果后:

    可以看到id是3的李四改成了冒牌李四。

    实现查方法:

    UserMapper接口类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    
    import java.util.List;
    
    public interface UserMapper {
    
        List<User> getUser();
    
        //添加增方法
        int getinsert(User user);
    
        //删方法
        int getdelete(int id);
    
        //改方法
        int getupdate(User user);
    
        //查方法
        User getselect(int id);
    }

    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">
    <!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
    <mapper namespace="com.hdlf.dao.UserMapper">
        <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
        <select id="getUser" resultType="com.hdlf.pojo.User">
            SELECT * FROM mybatis.user
        </select>
    
        <!--增方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
        <insert id="getinsert" parameterType="com.hdlf.pojo.User" >
            INSERT INTO mybatis.user(id,name,pwd) values (#{id},#{name},#{pwe})
        </insert>
    
        <!--删方法,接收值是int类型,这样可以根据id来删除方便-->
        <delete id="getdelete" parameterType="int">
            DELETE FROM mybatis.user WHERE id = #{id}
        </delete>
    
        <!--改方法,接收值是User,因为前面的接口里写了getinsert方法里的类型值是User类型的-->
        <update id="getupdate" parameterType="com.hdlf.pojo.User">
            update mybatis.user set name=#{name},pwd=#{pwe} where id=#{id};
        </update>
    
        <!--接受值是int,但需要返回值必须是User因为UserMapper接口写的方法返回值是User-->
        <select id="getselect" resultType="com.hdlf.pojo.User" parameterType="int">
            SELECT * FROM mybatis.user WHERE id = #{id}
        </select>
    </mapper>

    UserMapperTest测试类:

    package com.hdlf.dao;
    
    import com.hdlf.pojo.User;
    import com.hdlf.utils.Mybatisconfig;
    import org.apache.ibatis.session.SqlSession;
    import org.junit.Test;
    
    import java.util.List;
    
    public class UserMapperTest {
    
        @Test
        public void test(){
    
            //第一步,获得sqlsession对象
            SqlSession sqlSession = Mybatisconfig.getSqlSession();
            //执行sql
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            //查看数据
            User s = mapper.getselect(1);
            System.out.println(s.toString());
    
            //还需要提交事务 不然插入不成功(重要!!!)
            //sqlSession.commit();查看不需要提交事务
            //关闭sqlSession
            sqlSession.close();
        }
    
    
    }

    结果:

    是不是很简单呢?Mybatis虽然搭建环境有一点麻烦,但如过搭建完成之后调试很是方便。

  • 相关阅读:
    《魏坤琳的科学育儿宝典》笔记
    大千世界中,万物皆有时节
    心里健康基本要素
    不带评论的观察是人类智力的最高形式
    《七律·人民解放军占领南京》
    《最好的防御就是进攻》-- 向任总汇报无线业务会议纪要 2013年9月5日
    《深淘滩,低作堰》-- 任正非在运作与交付体系奋斗表彰大会上的讲话 2009年4月24日
    《市场经济是最好的竞争方式,经济全球化是不可阻挡的潮流》-- 任正非在财经系统表彰大会上的讲话 2009年3月24日
    《开放、妥协与灰度》-- 任正非在2009年全球市场工作会议上的讲话 2009年1月15日
    《让青春的火花,点燃无愧无悔的人生》-- 任正非在无线产品线奋斗大会上的讲话纪要 2008年5月31日
  • 原文地址:https://www.cnblogs.com/jzfanqiejiang/p/12181954.html
Copyright © 2011-2022 走看看