Java Web实战 | 开发一个MyBatis

举报
TiAmoZhang 发表于 2023/04/17 09:00:35 2023/04/17
【摘要】 简介: 本文介绍如何开发一个MyBatis基础应用。可遵照以下步骤进行。
简介: 本文介绍如何开发一个MyBatis基础应用。可遵照以下步骤进行。


640.jpg


01、准备数据表

在MySQL中创建数据库mybatis,并在mybatis数据库中创建表tb_team。语句如下:

640.png


02、创建项目并引入相关依赖

创建一个Maven项目,并引入4个相关jar包,分别是MyBatis 3.5.9核心包,用于单元测试的JUnit 4.10包,用于MyBatis输出日志信息的SLF4J 和Logback 1.2.10包,MySQL 8.0.28 Java驱动程序包。修改pom.xml文件,加入如下依赖:

57d47c47ad937fc29145dcaf48589a00.png


34efa53fa451244ac42152a6547637b0.png


03、创建日志配置文件

为方便程序调试,开发者经常需要在控制台输出SQL语句。这就需要配置MyBatis的输出日志。本书采用SLF4J和Logback构建日志系统。可以在src/main/resources目录下创建一个logback.xml的文件,作为Logback的配置文件,如文件1所示。
【文件1】logback.xml

42dca771ec7e2aefbbcb69050b7d001b.png


在文件1中的第10行设置了输出日志的包为com.example.mybatis.mapper。即执行该包中的代码时,MyBatis会在控制台输出日志信息。根据调试需要,可以扩大或缩小(可以指定日志输入范围为某个包中的某个类)输出日志的范围。


04、创建数据库连接配置文件

数据库连接的参数可以用properties文件实现动态配置。即由核心配置文件读取properties文件中的配置参数值,进而完成数据库连接设置。在src/main/resources目录下创建db.properties文件,内容如文件2所示。
【文件2】db.properties

640.png


05、创建MyBatis配置文件

MyBatis的配置文件主要用于项目的环境配置,如数据库连接的相关配置等。配置文件可任意命名,本书将其命名为mybatis-config.xml。在src/main/resources下创建配置文件,内容如文件3所示。
【文件3】mybatis-config.xml

40f9ddd8281701662a2da4844aa51628.png


其中,第2~4行为配置文件的约束信息,第6行用于加载数据库连接配置文件,第9行用于配置事务管理器,第10行使用JDBC DataSource接口构建数据库连接池,第11~14行用于配置数据库连接池的核心参数。


06、创建持久化类

持久化类用于封装应用程序要操作的数据。注意持久化类的属性类型应与数据库表中对应的字段类型相匹配。持久化类的属性名字可以与数据库表中字段的名字一致(非必须)。在src/main/java目录下创建com.example.mybatis.entity包,并在包中创建Team类,代码如文件4所示。

【文件4】Team.java

640.png


07、创建映射文件

在src/main/java目录下创建一个包com.example.mybatis.mapper,并创建一个名为TeamMapper.xml的映射文件。该文件主要用于配置SQL语句和Java对象之间的映射,使得被SQL语句查询出来的结果能够被映射为Java对象。一个项目可以有多个映射文件,每个实体类都可以有与其对应的映射文件。映射文件通常使用“持久化类的名字+Mapper”的方式命名。TeamMapper.xml的内容如文件5所示。

【文件5】TeamMapper.xml

640.png


其中,第2~4行是映射文件的约束信息,第5行是根元素的声明,属性namespace用于标识映射文件。一般来讲,要定义一个DAO接口,并用namespace来指定这个DAO接口的全限定名。本例中没有定义相关接口,此处的namespace属性只是用包名来填充。第6~9行的 元素用于编写SQL查询语句。其中 的id属性是该SQL语句的唯一标识,Java代码通过id值找到对应的SQL语句。resultType属性声明SQL查询语句的返回结果会被映射为Team类型。第8行为要执行的SQL语句,从提升程序性能角度考虑,不建议写 “select from…” 这种结构,而是将“”替换为要查找的字段列表。


08、修改配置文件

映射文件需要与配置文件关联,这样才可以在读取配置文件时加载映射文件。修改文件3,在第17行和第18行之间加入对映射文件的引用,代码如下:

640.png


09、编写测试类

最后,在src/test/java目录下创建com.example.demo.test包,并在该包中创建一个测试类TeamDemoTest,测试代码如文件6所示。

【文件6】TeamDemoTest.java

9df5f37fba0a86060db564a6d0caf88b.png


5c90ab638f7b581d313ce115b1165ec7.png


eda06002f16c556ad09335c49a6d0b7a.png


其中,第29~30行找到映射文件的元素的子元素,并执行中的SQL语句。具体过程为:首先通过元素的namespace属性找到对应的,在通过的子元素的id属性找到对应的子元素,并执行其中的SQL语句。由于要执行的是查询语句,并且该查询语句可能返回一组数据,因此调用的是SqlSession接口的selectList()方法。执行此测试代码,会在控制台输出当前tb_team表中的全部记录,如图3所示。

640.png


■ 图3 输出当前tb_team表中的全部记录

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。