mybatis delete返回值_从零开始学习在IntelliJ IDEA 中使用mybatis

纯新手,打算学习下mybatis的用法,在官网和教程上看了资料,整理下笔记。

既然是从零开始,就是不依赖任何框架和模板,从空白项目开始。在IDEA上先新建一个空的java项目。

1. 添加项目依赖

需要依赖两个包, 一个是mybatis,一个是mariadb的驱动包。

mybatis的jar包自己从官网或者maven上下好,然后加入到项目的依赖中去,具体设置如下:

77240677f637388312d8b65a8491f29d.png

2. 增加配置文件

然后加入一个mybatis的config文件。这个文件主要建立和数据库的联系。 文件内容如下:

<?xml version="1.0" encoding="UTF-8" ?>

上面driver要注意,我的数据是mariadb,所以driver用的 org.mariadb.jdbc.Driver。如果更换数据库的需要设置成对应的driver。

3. 增加mapping文件

<?xml version="1.0" encoding="UTF-8" ?>

4. 代码测试数据库连接

数据库中现有数据如下:

77c9c3edc9ad49ef3980239a51d3a2e1.png

对应的实体类定义如下:(这块儿我偷懒用了lambok注解, 要生效的话需要在 File-> Setting-> Build -> Compiler -> Annotation Processors 面板里选中Enable annotation processing)

@Builder

数据库的查询代码如下:

public 

运行后结果如下:

Student(id=1, firstName=zhou, lastName=zhe, age=20, man=false)
Student(id=2, firstName=feng, lastName=hao, age=23, man=true)

5. 数据库的增删改查

丰富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="ljw">   <!-- 命名空间,名字可以随意起,只要不冲突即可 -->
    <!-- 对象映射,可以不写 -->
    <!-- 查询功能,resultType 设置返回值类型 -->
    <select id="findAll" resultType="com.ljw.Student">  <!-- 书写 SQL 语句 -->
        SELECT * FROM Student
    </select>

    <insert id="insertStu">
      insert into student(firstName, lastName, age, man)
      values (#{firstName},#{lastName},#{age},#{man})
    </insert>

    <update id="updateStu">
    update student
    set  firstName = #{firstName}, lastName=#{lastName}, age = #{age}, man = #{man}
    where id = #{id};
    </update>

    <delete id="deleteStu">
      delete from Student where id = #{id}
    </delete>
</mapper>

然后在代码中调用就可以了

public class Main {
    
    public static void printRet(SqlSession sess) {
        // 查询
        List<Student> students = sess.selectList("ljw.findAll");
        for (Student stu: students) {
            System.out.println(stu.toString());
        }
    }
    
    public static void main(String[] args) throws Exception {
        String resource = "com/ljw/mybatis-cfg.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory =
                new SqlSessionFactoryBuilder().build(inputStream);

        try(SqlSession sess = sqlSessionFactory.openSession()) {
           // 查询
            printRet(sess);
            // 增加一个学生
            System.out.println("增加一个学生");
            Student stu = Student.builder().firstName("huang")
                    .lastName("he")
                    .age(30)
                    .man(true)
                    .build();
            sess.insert("ljw.insertStu", stu);
            printRet(sess);
            // 删除一个学生
            System.out.println("删除一个学生");
            stu.id = 2;
            sess.delete("ljw.deleteStu", stu);
            printRet(sess);
            // 更新一个学生
            System.out.println("改一个学生");
            stu.setFirstName("liu");
            stu.setId(1);
            System.out.println(stu.toString());
            sess.update("ljw.updateStu", stu);
            printRet(sess);
        }
    }
}

运行结果如下:

Student(id=1, firstName=zhou, lastName=zhe, age=20, man=false)
Student(id=2, firstName=feng, lastName=hao, age=23, man=true)
增加一个学生
Student(id=1, firstName=zhou, lastName=zhe, age=20, man=false)
Student(id=2, firstName=feng, lastName=hao, age=23, man=true)
Student(id=12, firstName=huang, lastName=he, age=30, man=true)
删除一个学生
Student(id=1, firstName=zhou, lastName=zhe, age=20, man=false)
Student(id=12, firstName=huang, lastName=he, age=30, man=true)
改一个学生
Student(id=1, firstName=liu, lastName=he, age=30, man=true)
Student(id=1, firstName=liu, lastName=he, age=30, man=true)
Student(id=12, firstName=huang, lastName=he, age=30, man=true)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值