Mybatis入门增删改查

Posted jzfanqiejiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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虽然搭建环境有一点麻烦,但如过搭建完成之后调试很是方便。

以上是关于Mybatis入门增删改查的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis入门配置及增删改查

Mybatis入门之增删改查

myBatis增删改查之入门

MyBatis入门案例 增删改查

MyBatis入门案例增删改查

Mybatis入门-增删改查