Mybatis实现简单的增删改查功能

本文介绍了如何在MyBatis中使用UserMapper接口和XML配置文件实现用户数据的增删改查操作。包括查询全部用户、根据ID查询、条件查询、插入、更新和删除用户的方法,并展示了如何进行参数传递和事务提交。同时,还演示了如何通过Map对象处理部分字段的更新,避免了完整更新时处理null值的复杂性。
摘要由CSDN通过智能技术生成

        环境:上一篇文章

        用到的数据库:User

        编写接口:UserMapper 和关联接口的配置文件 UserMapper.xml.注意:每当在接口中定义了一个抽象方法,UserMapper.xml就必须有相关的声明。xml中的id对应接口中的方法名,resultType对应了返回的类型

        查询方法(全部对象):

接口:

//查询全部用户
List<User> getUserList();

xml:

<select id="getUserList" resultType="com.leo.pojo.User">
    select * from mybatis.user
</select>

         查询方法(条件查询)

接口:

//根据Id查询用户
 User getUserById(int id);

xml:

<select id="getUserById" parameterType="int" resultType="com.leo.pojo.User">
    select  * from mybatis.user where id= #{id}
</select>

         当需要传递参数时,用#{}来进行传递

        注意:增删改方法需要提交事务:sqlSession.commit();        

        插入:

//插入用户
int insertUser(User user);
<insert id="insertUser" parameterType="com.leo.pojo.User">
    insert into mybatis.user(id, name, pwd) values (#{id},#{name},#{pwd})
</insert>

        修改:

//修改用户
int UpdateUser(User user);
<update id="UpdateUser" parameterType="com.leo.pojo.User">
    update mybatis.user set name=#{name},pwd=#{pwd}  where id=#{id} ;
</update>

        删除:

//删除用户
int deleteUser(int id);
<delete id="deleteUser" parameterType="com.leo.pojo.User">
    delete from mybatis.user where id=#{id};
</delete>

         以上方法可以实现简单的增删改查。

此外,还可以进行简单的模糊查询:

//模糊查询
List<User> getUserLike(String value);
<select id="getUserLike" resultType="com.leo.pojo.User">
    select * from mybatis.user where name like#{value};
</select>

        当表中的字段比较多时,如果我们想要修改一条记录的部分字段,或者添加一个记录(只有部分字段,其余为null时),如果使用完整的update、insert方法,就会显得非常复杂,因为不想修改(为null的部分需要手动添加),此时可以采用map的方式来进行操作

接口中:

//修改用户(部分数据)
int UpdateUser2(Map<String,Object> map);

xml:

<update id="UpdateUser2" parameterType="map" >
    update mybatis.user set name=#{userName},pwd=#{userPwd}  where id=#{userId} ;
</update>

注意:其中的parameterType从User类,改成了map(通过map操作),sql语句不变

测试方法:

@Test
public void test4(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();//获取sqlSession
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    Map<String, Object> map = new HashMap<String, Object>();//创建map
    map.put("userId",7);//往map中添加键值对,其中key与xml文件中的命名对应
    map.put("userName","大强子");
    mapper.UpdateUser2(map);
    sqlSession.commit();//注意提交事务
    sqlSession.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值