Mybatis更新与删除

84 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

更新用户

1. 编写customer表的domain类

@Setter@Getter
public class Customer {
    private Integer cust_id;
    private String cust_name;
    private String cust_profession;
    private String cust_phone;
    private String email;

    @Override
    public String toString() {
        return "Customer{" +
                "cust_id=" + cust_id +
                ", cust_name='" + cust_name + ''' +
                ", cust_profession='" + cust_profession + ''' +
                ", cust_phone='" + cust_phone + ''' +
                ", email='" + email + ''' +
                '}';
    }
}

2. Mapping中添加更新用户的sql语句

<?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">
<mapper namespace="myTest">
    <!--更新用户-->
    <update id="updateeCustomerById" parameterType="demo1.Customer">
        UPDATE customer SET cust_name=#{cust_name}where cust_id=#{cust_id}
    </update>
</mapper>

3. 将Mapping配置到SqlMappingConfig中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <!--使用jdbc事务管理-->
            <transactionManager type="JDBC"/>
            <!--配置数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/development"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--加载映射文件-->
    <mappers>
        <mapper resource="demo1/Mapping"/>
    </mappers>
</configuration>

4. 编写测试类

```
// 更新用户
@Test
public void test4() throws IOException {
    // 1、创建SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    //2、加载SqlMappingConfig配置文件
    InputStream resourceAsStream = Resources.getResourceAsStream("SqlMappingConfig");
    //3、创建SqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
    //4、创建SqlSession对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //5、设置对象参数
    Customer customer = new Customer();
    customer.setCust_name("赵老六");
    customer.setCust_id(12);
    //6、执行sql语句修改记录
    sqlSession.update("updateeCustomerById",customer);
    //7、提交事务,将数据写入到数据库中
    sqlSession.commit();
    System.out.println("修改数据成功");
    //8、关闭连接,释放资源
    sqlSession.close();
}
```

![](<> "点击并拖拽以移动")

运行结果

图片1.png

图片2.png

修改前数据

图片3.png

删除用户

1. 在Mapping中添加

<?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">
<mapper namespace="myTest">
    <!--更新用户-->
    <update id="updateeCustomerById" parameterType="demo1.Customer">
        UPDATE customer SET cust_name=#{cust_name}where cust_id=#{cust_id}
    </update>
    <!--删除用户-->
    <delete id="deleteById" parameterType="Integer">
        DELETE FROM customer WHERE cust_id=#{cust_id}
    </delete>
</mapper>

2. 编写测试类

// 删除用户
@Test
public void test5() throws IOException {
    // 1、创建SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    //2、加载SqlMappingConfig配置文件
    InputStream resourceAsStream = Resources.getResourceAsStream("SqlMappingConfig");
    //3、创建SqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
    //4、创建SqlSession对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //5、执行sql语句修改记录
    sqlSession.update("deleteById",12);
    //6、提交事务,将数据写入到数据库中
    sqlSession.commit();
    System.out.println("删除数据成功");
    //8、关闭连接,释放资源
    sqlSession.close();
}

运行结果

图片4.png

图片5.png

原始数据

图片6.png