mybatis batch批量提交,mybatisplus

概述mybatis 是一个优秀的基于 java的持久层框架,它内部封装了jdbc,使开发者只需要关注 sql语句本身,而不需要花费精力去处理加载驱动、创建连接、

概述

mybatis是一个很棒的基于Java的持久层框架,内部封装了jdbc,让开发者在加载驱动、创建连接、编写语句等复杂过程上不用再花费精力。

Mybatis通过xml或者注解来配置各种要执行的语句,并通过Java对象与语句中SQL动态参数的映射生成最终要执行的SQL语句。

最后,mybatis框架执行SQL,将结果映射到Java对象并返回。 ORM的思想用于解决实体到数据库映射的问题,封装JDBC,保护JDBC API的底层访问细节。这允许您完成数据库持久化操作,而无需处理jdbc API。

开发步骤

为MyBatis 添加坐标。 创建用户数据表。 编写用户实体类。 编写映射文件UserMapper.xml。 编写核心文件SqlMapConfig.xml。 编写一个测试类。

1. 搭建环境

1.1 导入MyBatis坐标及其他相关坐标。

1b957e0281f5455ea54b1804e5204dff~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=Z1PRqyewXXrm9ONWAQ%2BDo9TgPg8%3D

1.2 创建用户数据表

37089429d26246629ac3c3024dfea54a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=yMjk9qimLBlXfdzx%2BiBh8P5uRa8%3D

1.3 编写用户实体

ef35546722a14baea7fa7a942330d379~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=SZoB1A0QSvbN9ov1RXDUdXMruNg%3D

1.4 编写UserMapper映射文件

03f7db0a06964fd89e41f773d99d6641~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=BHAmETYltzACjR%2Bl5WOwiiYX7no%3D

1.5 编写jdbc.properties配置文件

12d43afced7d425eae244476dbffc29a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=l9dG7bS97WOiqM%2Fd9Vo2idLLqxs%3D

1.6 编写MyBatis核心文件

?xml 版本=’1.0′ 编码=’UTF-8′ ?

!DOCTYPE 配置PUBLIC ‘-//mybatis.org//DTD 配置3.0//EN’ ‘http://mybatis.org/dtd/mybatis-3-config.dtd’

作品

!–通过properties标签加载外部属性文件–

属性资源=’jdbc.properties’/properties

!–数据源环境–

环境默认=’开发’

环境ID=’开发’

事务管理器类型=’JDBC’/transactionManager

数据源类型=’POOLED’

属性名称=’驱动程序’值=’${jdbc.driver}’/

属性名称=’url’ 值=’${jdbc.url}’/

属性名称=’用户名’值=’${jdbc.username}’/

属性名称=’密码’值=’${jdbc.password}’/

/信息来源

/环境

/环境

!–加载映射文件–

映射器

映射器资源=’com/itheima/mapper/UserMapper.xml’/mapper

/映射器

/作品

2. 编写测试代码

24604a8092444576bdd5634034f4cd48~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=dJ3mLw9axXYydTAjjx0Y2%2F3qeJc%3D

映射文件

插图:

fabab1a346d645c0b3e2a08441fadf21~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=a089MtGUJXJKPqKyyLSOYqBt48w%3D

ed6db568a6e34a8892aa38024058f605~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=uProG4CP1KG7Y5wVCX%2F87t79rG4%3D

增删改查

插入操作注意事项

在插入语句中,使用插入标记和映射文件中的parameterType 属性来指定要插入的数据类型。在SQL语句中,使用#{实体属性名称}方法引用实体属性值。用于插入操作的API是sqlSession.insert(‘namespace.id’,entity object);因为插入操作涉及到修改数据库数据,所以要注意sqlSession对象所代表的提交事务,即sqlSession.commit()修改操作。

使用update 标签来修改语句。修改操作使用的API是sqlSession.update(‘namespace.id’,entity object);删除操作要小心。

要在删除语句中使用删除标记并引用传入的单个参数,请在SQL 语句中使用#{任意字符串}方法。删除操作使用的API是sqlSession.delete(‘namespace.id’,Object);概括

0c6ba6a326484e78891c51c2b648e154~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=RepyFDFMwEfHKM7VsWdtQiwFRIE%3D

配置文件

66438484fdc64dc39057331e20a7a790~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=fEpWtuUOCFmk82AVgdkm8%2F41OS8%3D

核心配置文件深入

a77a089e34744f05bc2a9e85005ba984~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=yESAF0ibnpxdPdGuP8AeAH%2BaKZE%3D

相应API

473ea4e6a5ec422fa9620d82bf430a04~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=7cAYPw4llp1OTrFV3RYfiZqrhtQ%3D

Dao层实现

常规开发模式

创建UserDao接口,创建UserDaoImpl来实现测试、传统方法、代理开发方法。

总结:Mapper接口开发方式需要程序员简单的编写一个Mapper接口(相当于Dao接口)。 Mybatis框架根据接口定义为接口创建动态代理对象。代理对象的方法体与上面Dao接口实现类的方法相同。

Mapper接口开发必须遵守以下规范:

Mapper.xml 文件中的命名空间与Mapper 接口的完全限定名称相同。 Mapper接口中的方法名称与Mapper.xml中定义的每个语句的ID相同。 Mapper接口方法的输出参数类型与mapper.xml中定义的各个SQL resultType的类型相同。编写UserMapper接口。

af5c6b19f4974a93b1e99534e6b85312~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=GyvvZ9rTQsmCbI8ZiryZbnbfP0I%3D

执行

用户映射器接口:

79ea4d981ab541eea57ef5c7fbec6b2c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=mdanh9piBKFlB7MD6RpybhcS9hM%3D

UserMapper.xml 文件:

7b91f3ae9c9741af88080db388c00d23~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=Ranb2wmeHpIBVmuKzYObgKQduPM%3D

sqlMapConfig.xml 文件:

?xml 版本=’1.0′ 编码=’UTF-8′ ?

!DOCTYPE 配置PUBLIC ‘-//mybatis.org//DTD 配置3.0//EN’ ‘http://mybatis.org/dtd/mybatis-3-config.dtd’

作品

!–通过properties标签加载外部属性文件–

属性资源=’jdbc.properties’/properties

!–自定义别名–

类型别名

typeAlias type=’com.User’ 别名=’user’/typeAlias

/type别名

!–数据源环境–

环境默认=’开发’

环境ID=’开发’

事务管理器类型=’JDBC’/transactionManager

数据源类型=’POOLED’

属性名称=’驱动程序’值=’${jdbc.driver}’/

属性名称=’url’ 值=’${jdbc.url}’/

属性名称=’用户名’值=’${jdbc.username}’/

属性名称=’密码’值=’${jdbc.password}’/

/信息来源

/环境

/环境

!–加载映射文件–

映射器

映射器资源=’com.itheima.mapper\UserMapper.xml’/mapper

/映射器

/作品

测试代码:

amp;from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=plyFu7rnW1%2BcLnuIxIwoa3ts%2BMw%3D” />

注解开发

概述:Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件。

常用注解

@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装c4ff69ce831b471a98bd2d6218a9c210~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=2xV4f6Fkkn6PNDXhxL9f8nzDqCk%3D

案例实现

注意:此处省略了环境搭建、数据库的设计展示、连接数据库文件的编写等操作。
1. 创建实体
9b5c42ebce624cfe911fefdc0ea42882~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=cqeruEAA%2BOvmTVlmdG0tQmC8JiA%3D
994b4e9c6e7f4af69f8c731fddd29072~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=8Jz2Ebirn%2B2NpDDvq8qJqf%2FI%2Frs%3D
2. 编写sqlMapConfig.xml文件
<?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>
<!–通过properties标签加载外部properties文件–>
<properties resource=”jdbc.properties”></properties>
<!–自定义别名–>
<typeAliases>
<typeAlias type=”com.itheima.domain.User” alias=”user”></typeAlias>
</typeAliases>
<!–注册类型处理器–>
<typeHandlers>
<typeHandler handler=”com.itheima.handler.DateTypeHandler”></typeHandler>
</typeHandlers>
<!–数据源环境–>
<environments default=”development”>
<environment id=”development”>
<transactionManager type=”JDBC”></transactionManager>
<dataSource type=”POOLED”>
<property name=”driver” value=”${jdbc.driver}”/>
<property name=”url” value=”${jdbc.url}”/>
<property name=”username” value=”${jdbc.username}”/>
<property name=”password” value=”${jdbc.password}”/>
</dataSource>
</environment>
</environments>
<!–加载映射关系–>
<mappers>
<!–指定接口所在的包–>
<package name=”com.itheima.mapper”/>
</mappers>
</configuration>
3. 接口实现
42b7355dbb634241824c3f3936bd663a~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=dk2Ivaqz%2FTKnrl%2FKvg%2BHuveJKd8%3D
774a40ae123f4c88b2b4274a460ccc53~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=eiSEjjnbKHCwbIrPW1kX9Q0BjNM%3D
4. 测试类
a1e65d71b51d4146bd2ef3d498085437~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=mdE6e901BBz5vytMynVK4tVa7P8%3D
253b5f22d05d472fad41c86ee0739ef1~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788981&x-signature=w3LAGv2hrqXBoET6v3sETqWrImM%3D

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84204.html

(0)
小条's avatar小条
上一篇 2024年6月1日 上午3:36
下一篇 2024年6月1日 上午3:36

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注