热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mybatisdelete返回值_从零开始学习在IntelliJIDEA中使用mybatis

纯新手,打算学习下mybatis的用法,在官网和教程上看了资料,整理下笔记。既然是从零开始,就是不依赖任何框架和模板

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

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

1. 添加项目依赖

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

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

77240677f637388312d8b65a8491f29d.png

2. 增加配置文件

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


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

3. 增加mapping文件


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的操作, 增加对 增删改查的映射。



insert into student(firstName, lastName, age, man)values (#{firstName},#{lastName},#{age},#{man})update studentset firstName = #{firstName}, lastName=#{lastName}, age = #{age}, man = #{man}where id = #{id};delete from Student where id = #{id}

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

public class Main {public static void printRet(SqlSession sess) {// 查询List 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)



推荐阅读
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
author-avatar
书友64478237
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有