一、初始tkMybatis

(1)简化sql语句,取消使用mapper.xml文件。

(2)方便统一管理,简化代码,取消臃肿的代码。

二、springboot集成tkMybatis步骤

(1)、引入TkMybatis的Maven依赖。

(2)、配置对应实体类(表对应的实体)。

(3)、Mapper集成tkMybatis的Mapper接口。

(4)、启动类注解@MapperScan扫描Mapper接口。

(5)、在application.yml配置文件,指定mapper.xml文件路径。(可省略)

(6)、使用TkMybatis提供的sql执行方法。

三、接入TkMybatis

(1)、导入maventk.mybatismapper-spring-boot-starter2.1.0tk.mybatismapper4.0.3

(2)、表对应的实体类package com.cloud.user.entity;import lombok.Builder;import lombok.Data;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;import java.io.Serializable;@Data@Builder/** * 表名称和实体类名驼峰名称一直时可以不适用@Table * 如:表面 user_info ---> 实体类 UserInfo */@Table(name = "user_info")public class UserInfo implements Serializable { ** * 表主键 @Id :表示该字段是表主键 * @GeneratedValue : 主键生成策略 * generator="jdbc" :会自动将主键id填充到实体类中.类似普通mapper.xml中配置的selectKey标签 */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY,generator = "jdbc") private Long uid; private String account; private String password; private String salt; private Integer accountType; private Integer sex; private String phone;}

注:

1.1、@GeneratedValue:strategy主键生成策略。

1.1.1、GenerationType.TABLE:使用表生产主键,即使用另外一张表单独维护主键。使用如下:@Table(name = "user_info")public class UserInfo implements Serializable { ** * 表主键 @Id :表示该字段是表主键 * @GeneratedValue : 主键生成策略 * strategy = GenerationType.TABLE : 自定义主键表,必须结合@TableGenerator使用 * TableGenerator :主键表相关参数配置 */ @Id @GeneratedValue(strategy = GenerationType.TABLE,generator = "userSeq") @TableGenerator(name = "userSeq" ,allocationSize = 1,table = "user_seq_table",pkColumnName = "user_seq_id",valueColumnName = "seq_value") private Long uid;

1.1.2、GenerationType.SEQUENCE:序列化对象成主键,多用于不支持主键自增或者自动生成主键的数据库(Oracle)。使用如下:@Table(name = "user_info")public class UserInfo implements Serializable { ** * 表主键 @Id :表示该字段是表主键 * @GeneratedValue : 主键生成策略 * strategy = GenerationType.SEQUENCE : 序列化生成主键,必须结合@SequenceGenerator使用 * SequenceGenerator :序列化生成主键方式 */ @Id @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "userSeq") @SequenceGenerator(name = "userSeq" ,initialValue = 1,allocationSize = 1,sequenceName = "user_seq") private Long uid;

1.1.3、GenerationType.IDENTITY: 主键自增@Table(name = "user_info")public class UserInfo implements Serializable { ** * 表主键 @Id :表示该字段是表主键 * strategy = GenerationType.IDENTITY : 主键自增 mysql 中的 auto_increment */ @Id @GeneratedValue(strategy =GenerationType.IDENTITY ) private Long uid;

1.1.4、GenerationType.AUTO:自动创建主键(以上三种策略任选一种)@Table(name = "user_info")public class UserInfo implements Serializable { ** * 表主键 @Id :表示该字段是表主键 * strategy = GenerationType.AUTO : 主键生成策略交给持久化引擎自动处理, * 持久化引擎会根据数据库在以上三种生成策略中任选一个 */ @Id @GeneratedValue(strategy =GenerationType.AUTO ) private Long uid;

(3)、集成tkMybatis的Mapper接口import com.cloud.user.entity.UserInfo;import tk.mybatis.mapper.common.Mapper;/** * 接入 tk-mybatis * */public interface UserInfoMapper extends Mapper {}

(4)、启动类注解@MapperScan扫描Mapper接口import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.openfeign.EnableFeignClients;import tk.mybatis.spring.annotation.MapperScan;/** * * 2020-05-06 * */@EnableDiscoveryClient@EnableFeignClients@MapperScan(basePackages = {"com.cloud.user.mapper"})@SpringBootApplicationpublic class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication.class, args); }}

(5)、在application.yml配置文件,指定mapper.xml文件路径。(可省略)# mybatismybatis: configLocation: classpath:mybatis-config.xml mapperLocations: classpath:mappers/*.xml

(6)、业务层调用/** * 业务层 * 2020-05-06 * */public class UserInfoServiceImpl implements UserInfoService { @Autowired private UserInfoMapper userInfoMapper; @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class,timeout = 10) @Override public UserInfo getUserInfo(Long uid) { return userInfoMapper.selectByPrimaryKey(uid); }}

总结:

(1)接入比较方便,常见CRUD 都已经封装完成。接入即可使用。

(2)无需再去维护xml 。不需要关注sql的使用。

(3)提升开发效率。

来源:

https://www.toutiao.com/i6823686018642739716/“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

来都来了,走啥走,留个言呗~

IT大咖说  |关于版权

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

tkmybatis能连接oracle吗,《放弃Mybatis使用tkMybatis》相关推荐

  1. oracle 水晶报表开发,水晶报表连接Oracle做数据报表笔记

    首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择"数据库专家",打开之后是这么一个界面: 选择建立新连接: 这个地方 ...

  2. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

  3. C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

    官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(O ...

  4. java连接oracle失败_程序连接oracle数据库失败

    navicat可以连接oracle数据库,但是程序连接报错,在完成一下几个步骤后,一切正常了: 1.D:\AfterInstall\instantclient-basic-windows.x64-12 ...

  5. ssm oracle mysql_ssm连接oracle数据库

    ssm连接oracle数据库 发布时间:2018-06-17 19:04, 浏览次数:1001 , 标签: ssm oracle 之前ssm项目使用的都是mysql数据库,现在要使用oracle数据库 ...

  6. 把EXCEL用程序导入到ORACLE中(SpringMVC+MyBatis)

    id="BAIDU_DUP_fp_iframe" src="//pos.baidu.com/wh/o.htm?ltr=" style="width: ...

  7. JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统(附源码)

    文章目录 JavaEE + Oracle + Spring Boot + Mybatis + Maven 开发简易版银行管理系统 一.系统介绍 二.开发步骤 三.系统展示 四.开发总结 五.数据库相关 ...

  8. java中用spring boot连接oracle数据库

    java中用spring boot连接oracle数据库 代码下载链接 百度云:https://pan.baidu.com/s/1dU_z2pUS2NSfowI4_mJ4Ow 提取码:mmlm CSD ...

  9. python连接oracle数据库_Python连接oracle数据库 例子一

    step1:下载cx_Oracle模块,cmd--pip install cx_Oracle step2: 1 import cx_Oracle #引用模块cx_Oracle 2 conn=cx_Or ...

  10. ado控件连接oracle,在Delphi 7中用ADOConnection控件连接Oracle 9i的问题

    我在本地机器上安装了oracle客户端,其中tnsnames.ora文件中的内容如下: dbtest_212.113.74.23 = (DESCRIPTION = (ADDRESS_LIST = (A ...

最新文章

  1. 转载:一位资深程序员大牛给予Java初学者的学习路线建议
  2. Algorithm:C++语言实现之贪心法算法相关问题
  3. 【整数反转】算法优化笔记
  4. 一键洞悉员工级人效!智邦国际集团业财一体化管理系统:业财一心,基业长青
  5. (08)System Verilog 队列详解
  6. mysql怎么查主键是否重复数据库_数据库插入前判断主键重复与否的方法
  7. SAP License:SAP顾问是如何炼成的——SAP到底是什么?
  8. java中result方法_java.sql.resultSet接口中有很多方法的实现
  9. 大数据Spark面试题
  10. Docker学习总结
  11. css实现一个正方形
  12. HTML5软件设计大赛,我院成功举行第十七届山东省大学生软件设计大赛 HTML5创意应用命题决赛...
  13. 清明不远游 国内赏春地推荐
  14. 关于YouTub视频广告格式
  15. 无线蓝牙耳机哪个品牌音质好?性价比高音质好的蓝牙耳机排行榜
  16. win10 java无法运行_如何解决win10配置jdk之后javac无法运行的情况?
  17. 盲盒系统搭建——玩转盲盒系统
  18. 史上最全面的python学生管理系统教程(二)
  19. 短视频、直播平台——电商直播源码第三方SDK接入教程
  20. C++界面开发框架Qt新手入门指南 - 如何创建Qt Quick UI项目

热门文章

  1. 常见的几类矩阵(正交矩阵、酉矩阵、正规矩阵等)
  2. eclipse安装Subclipse(svn数据源)
  3. Vercel部署网易云音乐api
  4. 输入姓名自动生成拼音
  5. c语言程序中不能表示数制的是,2017计算机c语言二级考试题库及答案
  6. Python函数的输出
  7. beatmaker3 android,faded打击垫
  8. 2018WPS暑期实习生web前端笔试题
  9. 金蝶盘点机PDA仓库条码管理:仓库如何盘点
  10. 普华永道:2030年区块链价值将突破30万亿