Mybatis之增删改查

发布时间:2023年12月22日

一、引言

书接上回,我们在了解完mybatis之后,肯定要知道怎么使用,本文就来详细讲解Mybatis的增删改查事务,还不了解怎么配置mybatis的童鞋可以去这篇文章了解一下通俗易懂讲解javaweb之mybatis-CSDN博客

?二、Mybatis——增

举例:添加用户

图解:xml配置文件中写入

注意:要写在xml文件中的mapper标签内

insert的标签参数:

id为这个映射语句的唯一标识符

parameterType为参数类型

xml中的代码:?

    <insert id="addUser" parameterType="user.User">
        INSERT INTO USER(username,password,email,tellphone,remark) VALUE(#{username},#{password},#{email},#{tellphone},#{remark})
    </insert>

测试类的代码:?

    @Test
    public void addUser(){
        // 创建数据库会话实例sqlSession
        SqlSession sqlsession =ssf.openSession();
        User user = new User("胡英俊","123456","234567dsfgrt","12345657","grthrgfaw");
        int result = sqlsession.insert("test.addUser",user );
        sqlsession.commit();
        System.out.println("影响了:"+result);
        sqlsession.close();
    }

?步骤解析:

先创建一个sqlsession对象,再创建一个user对象,int result用来传递影响的行数,通过sqlsession的insert方法,插入user对象,再通过commit方法提交,如果没有commit方法是不会保存插入的哦,虽然result有结果,但是没有保存这次的插入

?

?三、Mybatis——删

举例:删除用户

xml中的代码:

	<delete id="deleteUserById" parameterType="int">
		delete from user where id=#{id}
	</delete>

?delete标签中的也是

id为这个映射语句的唯一标识符

parameterType为参数类型

测试类的代码:

	@Test
	public void testDelete() {
            // 创建数据库会话实例sqlSession
            SqlSession sqlsession =ssf.openSession();
			// 删除用户
			sqlSession.delete("test.deleteUserById",18);
			// 提交事务
			sqlSession.commit();
			sqlSession.close();
	}

?四、Mybatis——改

举例:修改用户

xml中的代码:

  <update id="updateUser" parameterType="com.example.User">  
    UPDATE user  
    SET  
      username = #{username},  
      password = #{password},  
      email = #{email},  
      tellphone = #{tellphone}, 
      remark = #{remark}  
    WHERE id = #{id}  
  </update> 

测试类的代码 :

    @Test
    public void updateUser(){
        // 创建数据库会话实例sqlSession
        SqlSession sqlsession =ssf.openSession();
        User user = new User(5,"胡英俊","123456","234567dsfgrt","12345657","grthrgfaw");
        int result = sqlsession.update("test.updateUser",user );
        sqlsession.commit();
        System.out.println("影响了:"+result);
        sqlsession.close();
    }

还是需要commit方法才能成功修改并保存?

?五、Mybatis——查

xml中的代码:

    <select id="findUserById" parameterType="int" resultType="user.User">
        select * from user where id=#{id}
    </select>

resultType是查询结果的结果类型?

测试类的代码:?

    @Test
    public void testFindUserById(){
        SqlSession sqlsession =ssf.openSession();
        //System.out.println(session);
        User user = sqlsession.selectOne("test.findUserById", 4);
        System.out.println(user);
        System.out.println("用户名字:"+user.getName()+",用户密码:"+user.getPassword());
        sqlsession.close();
    }

六、注意?

有几点需要注意的地方:

1.配置文件中的id的属性值,不一定要和方法名一样,但是一定要和sqlsession的参数名一样

2.除了查询语句,增删改都需要进行commit方法提交,不然不会保存在数据库

3.每一个数据表的xml文件都是单独的,不能在这个数据表的xml文件中进行另一个表的操作,并且创建表的xml文件还要在SqlMapConfig.xml文件下添加才行。

END:

好了,以上就是《Mybatis之增删改查》的全部内容了,如果有帮助到你的话,麻烦点赞收藏转发你的支持就是我更新的最大动力,欢迎评论区讨论或者私信留言,我是sharefive,期待你的关注,886~

文章来源:https://blog.csdn.net/weixin_74250204/article/details/135103931
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。