Mybatis 三种使用方式 SpringBoot + mybatis

1.mybatis简介

mybatis 前身叫iBatis是Apache的一个开源框架,2010改名为mybatis。 是一个持久层 orm 框架,支持定制化sql、存储过程高级映射等。

2. sql脚本准备

CREATE TABLE `sys_user` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '系统用户id',
  `user_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
  `create_dt` datetime NOT NULL COMMENT '修改时间',
  `modify_dt` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户表';

3. 新建springboot项目

可自行 某度一下

4.mybatis 使用方式

4.1 接口代理(常用)

这种方式一般是配合 spring 或 springboot 使用,此处介绍springboot配合使用。

4.1.1 引入jar包

  	 <!-- springboot web项目 不引入此包,否则容器无法正常启动 -->
  	 <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
       <!-- 阿里数据库连接池 -->
      <!--sql-->
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid-spring-boot-starter</artifactId>
          <version>${druid.version}</version>
      </dependency>
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
      </dependency>
       <!-- 整合 mybatis 使用 -->
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.2.2</version>
      </dependency>
      <!-- lombok 好用的 插件,生成getter setter ,equals 等方法和日志变量 -->
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
      </dependency>

4.1.2 后缀 yml 文件配置

spring:
 # spring 管理连接池
  datasource:
    druid:
      # 换成自己的连接
      url: jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
      # 用户名
      username: root
      # 密码
      password: root
      # 驱动
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 最大活跃连接
      max-active: 120
      initial-size: 30
      min-idle: 15
 

mybatis:
  # typeAliasesPackage 或 type-aliases-package 配置mapper 映射实体位置
  typeAliasesPackage: com.example.demo.dao.**
  # mapper-locations 本地mapper文件位置  mapperLocations
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 指定配置文件  configLocation: classpath:mybatis/mybatis-config.xml
  configuration:
    # 下划线转驼峰
    map-underscore-to-camel-case: true
    # 日志
    logImpl: org.apache.ibatis.logging.stdout.StdOutImpl

4.1.3 新建mapper文件和 对应的类

目录结构如下
目录结构
SysUserMapper.java文件代码

SysUserMapper.java文件代码

SysUserMapper.xml文件代码
SysUserMapper.xml文件内容
SysUserServiceImpl 代码截图,直接注入 mapper 接口即可
SysUserServiceImpl截图
SysuserController截图
sysUserController截图

到此就配置完了,直接启动项目即可执行
访问路径 为(默认端口8080): localhost:8080/sysUser/list
下面为结果截图:
结果截图
其它api:

	// 返回实体
	<T> T selectOne(String statement, Object parameter)
	// 返回列表
	<E> List<E> selectList(String statement, Object parameter)
	// 类似游标的功能,数据量比较大的时候,可以不用一次性拿出所有数据,节省内存
	<T> Cursor<T> selectCursor(String statement, Object parameter)
	// 返回map
	<K,V> Map<K,V> selectMap(String statement, Object parameter, String mapKey)
	int insert(String statement, Object parameter)
	int update(String statement, Object parameter)
	int delete(String statement, Object parameter)
	/*
	高级使用:
		它们允许你限制返回行数的范围,
		或是提供自定义结果处理逻辑,
		通常在数据集非常庞大的情形下使用。
		*/
	<E> List<E> selectList (String statement, Object parameter, RowBounds rowBounds)
	<T> Cursor<T> selectCursor(String statement, Object parameter, RowBounds rowBounds)
	<K,V> Map<K,V> selectMap(String statement, Object parameter, String mapKey, RowBounds rowbounds)
	void select (String statement, Object parameter, ResultHandler<T> handler)
	void select (String statement, Object parameter, RowBounds rowBounds, ResultHandler<T> handler)

4.2 sqlSession执行对应语句 + nameSpace + 方法名称

在一的基础上,修改serviceImpl代码
修改后的serviceImpl方法
查看结果
执行结果

4.3 基于mapper 文件注解

修改后的serviceImpl 截图
修改后的impl截图
mapper 截图
mapper截图

其它注解:

	@Insert
	@Update
	@Delete
	@Select
/* 每个注解分别代表将会被执行的 SQL 语句。它们用字符串数组(或单个字符串)作为参数。
	如果传递的是字符串数组,字符串数组会被连接成单个完整的字符串,每个字符串之间加入一个空格。*/
	@InsertProvider
	@UpdateProvider
	@DeleteProvider
	@SelectProvider
 /*
	动态sql Java 代码里构建 SQL 语句 
*/

说明

mybatis的使用形式可以有多种,如spring + mybatis,xml方式配置,javaBean方式配置数据源等。此文章为方便,采用的是开箱即用的springboot + mybatis 实现。

代码连接:https://download.csdn.net/download/m0_46861007/85219806
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值