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虽然搭建环境有一点麻烦,但如过搭建完成之后调试很是方便。