精华内容
下载资源
问答
  • TKmybatis

    千次阅读 2020-06-19 17:52:48
    TKmybatis Tkmybatis是基于Mybatis框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何sql语句 Springboot 整合 TKmybatis 引入TkMybatis的Maven依赖 实体类的相关配置,@Id,@Table Mapper...

    TKmybatis

    Tkmybatis是基于Mybatis框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何sql语句

    Springboot 整合 TKmybatis

    1. 引入TkMybatis的Maven依赖
    2. 实体类的相关配置,@Id,@Table
    3. Mapper继承tkMabatis的Mapper接口
    4. 启动类Application或自定义Mybatis配置类上使用 @MapperScan(“package name”)注解扫描Mapper接口
    5. 在application.properties配置文件中,配置mapper.xml文件指定的位置[可选]
    6. 使用TkMybatis提供的sql执行方法

    总结

    mybatis与hibernate的对比

    其中,程序员手动编写sql相比hibernate自动生成hql(hibernate sql)更加灵活,sql调优更加容易(hibernate因为更好的封装性,开发效率提高的同时,sql语句调优要更费力,当然可以手动修改sql来优化,但是同时也会影响开发效率)。

    TKmybatis 很好地解决了mybaits单表查询开发效率不高这一问题。

    如果使用多表查询,还是要通过xml来实现。

    jpa解决方案

    以hibernate为例

    1. 单表简单查询,根据方法名来查询
    2. 单表复杂查询,根据查询类来查询
    3. 多表关联查询,集成QueryDSL来实现
    4. 写原生SQL,不推荐
    展开全文
  • Tkmybatis是基于Mybatis框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何sql语句,这极大地提高了项目开发效率。 代码说明 tk-mybatis为spring boot集成的tkmybatis ,在配置好文件后,...
  • 本章Sprintboot整合tkmybatis实现数据库访问,默认已通过tk-mybatisgenerator自动生成了po、dao和*mapper.xml(参考“003-数据库-tkmybatis-01-使用tk-mybatis generator 自动生成代码”),补全项目springboot相关...

            本章Sprintboot整合tkmybatis实现数据库访问,默认已通过tk-mybatis generator自动生成了po、dao和*mapper.xml(参考“003-数据库-tkmybatis-01-使用tk-mybatis generator 自动生成代码”),补全项目springboot相关依赖,包括spring-boot-starter、spring-boot-starter-web。

     

    1、在pom.xml文件中添加依赖

    
    <!--tk.mybatis依赖-->
    
    <dependency>
    
        <groupId>tk.mybatis</groupId>
    
        <artifactId>mapper-spring-boot-starter</artifactId>
    
        <version>2.1.5</version>
    
    </dependency>
    
    
    
    
    
    <!-- mysql驱动依赖 -->
    
    <dependency>
    
        <groupId>mysql</groupId>
    
        <artifactId>mysql-connector-java</artifactId>
    
        <version>5.1.46</version>
    
        <scope>runtime</scope>
    
    </dependency>

     

     

    2、定义service文件,包括接口和实现类

    这里用IOrdersService和OdersService举例

    IOrdersService.java
    
    package com.example.demotkmybatis.service;
    
    import com.example.demotkmybatisgenerator.pojo.Orders;
    
    import java.util.List;
    
    
    
    public interface IOrdersService {
    
        public List<Orders> findAll();
    
    }
    
    
    
    OdersService.java(在实现类中,通过autowired注入Dao层OrdersMapper类,其中OrdersMapper类是tik-mybatis generator自动生成的)
    
    package com.example.demotkmybatis.service.impl;
    
    import com.example.demotkmybatis.service.IOrdersService;
    
    import com.example.demotkmybatisgenerator.mapper.OrdersMapper;
    
    import com.example.demotkmybatisgenerator.pojo.Orders;
    
    import org.springframework.beans.factory.annotation.Autowired;
    
    import org.springframework.context.annotation.Bean;
    
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    
    
    @Service
    
    public class OdersService implements IOrdersService {
    
    
    
        @Autowired
    
        private OrdersMapper ordersMapper;
    
    
    
        @Override
    
        public List<Orders> findAll() {
    
            return ordersMapper.selectAll();
    
        }
    
    }

     

    3、定义controller文件

    OrderController.java
    
    package com.example.demotkmybatis.controller;
    
    
    
    import com.example.demotkmybatis.service.IOrdersService;
    
    import com.example.demotkmybatis.service.impl.UserService;
    
    import com.example.demotkmybatisgenerator.pojo.Orders;
    
    import com.example.demotkmybatisgenerator.pojo.Users;
    
    import org.springframework.beans.factory.annotation.Autowired;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    
    import java.util.List;
    
    
    
    @RestController
    
    public class OrderController {
    
    
    
        @Autowired
    
        private IOrdersService iOrdersService;
    
    
    
        @RequestMapping("/findAllOrders")
    
        public List<Orders> findAll() {
    
            List<Orders> ordersList = iOrdersService.findAll();
    
            return ordersList;
    
        }
    
    }

    4、定义springboot启动类

    DemoTkmybatisApplication.java

    package com.example.demotkmybatis;
    
    
    
    import tk.mybatis.mapper.provider.base.BaseSelectProvider;
    
    import tk.mybatis.spring.annotation.MapperScan;
    
    import org.springframework.boot.SpringApplication;
    
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    
    
    @SpringBootApplication
    
    @MapperScan("com.example.demotkmybatisgenerator.mapper")
    
    public class DemoTkmybatisApplication {
    
    
    
        public static void main(String[] args) {
    
            SpringApplication.run(DemoTkmybatisApplication.class, args);
    
        }
    
    
    
    }

    注意@MapperScan一定要配置,该注解制定了DAO层mapper的扫描路径,如果没有配置,那么service中注入的mapper对象,比如OrdersMapper,会注入失败

     

    5、添加application.properties文件

    根据实际情况修改配置内容

    # tomcat配置
    
    server.port=8080
    
    
    
    # datasource配置
    
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/foodie-shop?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
    
    spring.datasource.username=root
    
    spring.datasource.password=123456
    
    
    
    # TkMybatis配置
    
    ## mapper映射文件,配置自动生成的*mapper.xml文件的位置
    
    mybatis.mapper-locations=classpath*:mapper/*.xml
    
    ## 所有POJO类所在包路径
    
    mybatis.type-aliases-package=com.example.demotkmybatisgenerator.pojo
    
    ## 通用mapper的配置,默认值为tk.mybatis.mapper.common.Mapper,tk-mybatis generator自动生成的mapper文件都继承自该类
    
    mapper.mappers: tk.mybatis.mapper.common.Mapper

     

    6、启动application应用程序

    展开全文
  • 说明为了简化开发,可以集成tk,tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具。...

    说明

    为了简化开发,可以集成tk,tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具。

    引入依赖

    集成tkmybatis就不需要再次引入mybatis的相关包了,已经被封装提在tk中。

    org.springframework.boot

    spring-boot-starter-web

    tk.mybatis

    mapper-spring-boot-starter

    2.1.5

    mysql

    mysql-connector-java

    runtime

    org.projectlombok

    lombok

    true

    org.springframework.boot

    spring-boot-starter-test

    test

    org.junit.vintage

    junit-vintage-engine

    application.properties

    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mymall?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&serverTimezone=UTC&useSSL=false&allowMultiQueries=true

    spring.datasource.username=root

    spring.datasource.password=root

    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    mybatis.type-aliases-package=com.tk.mybatis.demo.entity

    logging.level.com.tk= debug

    BaseTkMapper.java

    importtk.mybatis.mapper.common.Mapper;importtk.mybatis.mapper.common.MySqlMapper;/***@authorlpg

    * @description: 增强mapper基类,支持批量操作,其他mapper继承此mapper

    * @date 2020/10/2 16:04*/

    public interface BaseTkMapper extends Mapper, MySqlMapper{

    }

    MymallMapper.java

    importcom.tk.mybatis.demo.entity.MymallRole;importorg.apache.ibatis.annotations.Mapper;

    @Mapperpublic interface MymallMapper extends BaseTkMapper{

    }

    MymallService.java

    importcom.tk.mybatis.demo.entity.MymallRole;importjava.util.List;public interfaceMymallService {

    ListgetRoles();

    }

    MymallServiceImpl.java

    importcom.tk.mybatis.demo.entity.MymallRole;importcom.tk.mybatis.demo.mapper.MymallMapper;importcom.tk.mybatis.demo.service.MymallService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importtk.mybatis.mapper.entity.Example;importjava.util.List;

    @Servicepublic class MymallServiceImpl implementsMymallService {

    @AutowiredprivateMymallMapper mymallMapper;

    @Overridepublic ListgetRoles() {

    Example example= new Example(MymallRole.class);

    example.selectProperties("name","enabled");returnmymallMapper.selectByExample(example);

    }

    }

    BaseTkEntity.java

    packagecom.tk.base.common;importcom.fasterxml.jackson.annotation.JsonFormat;importlombok.Data;importorg.springframework.format.annotation.DateTimeFormat;importtk.mybatis.mapper.annotation.LogicDelete;importjavax.persistence.Column;importjava.util.Date;

    @Datapublic abstract classBaseTkEntity {/*** 删除状态

    * 0:未删除

    * 1:已删除*/@Column(name= "deleted")

    @LogicDelete(isDeletedValue= 1,notDeletedValue = 0)protectedBoolean deleted;/*** 创建时间*/@JsonFormat(pattern= "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")

    @Column(name= "create_time")protectedDate createTime;/*** 创建人*/@Column(name= "create_user")protectedString createUser;/*** 最近更新时间*/@JsonFormat(pattern= "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

    @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")

    @Column(name= "update_time")protectedDate updateTime;/*** 更新人*/@Column(name= "update_user")protectedString updateUser;/*** 设置创建人和创建时间

    *

    *@parambaseEntityObj baseEntity的子类对象

    *@param 对象类型*/

    public voidsetUserAndTime(T baseEntityObj) {this.createTime =baseEntityObj.getCreateTime();this.createUser =baseEntityObj.getCreateUser();this.updateTime =baseEntityObj.getUpdateTime();this.updateUser =baseEntityObj.getUpdateUser();

    }

    }

    MymallRole.java

    importlombok.Data;importjavax.persistence.Column;importjava.util.Date;

    @Datapublic classMymallRoleextends BaseTkEntity

    {private intid;privateString name;privateString desc;privateBoolean enabled;}

    MyMallController.java

    importcom.tk.mybatis.demo.service.MymallService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;

    @RestControllerpublic classMyMallController {

    @AutowiredprivateMymallService mymallService;

    @GetMapping("mall")publicString getRoles(){returnmymallService.getRoles().toString();

    }

    }

    验证测试

    启动服务,浏览器输入http://localhost:8080/mall

    d1bd9818b299c9ce7010e161ad532206.png

    展开全文
  • tkmybatis

    2020-11-20 18:04:05
    tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>版本号</version> </dependency> 添加配置文件 # 连接四大参数 spring.datasource

    引入pom依赖

    <!-- 通用Mapper启动器 --> 
    <dependency> 
    	<groupId>tk.mybatis</groupId> 
    	<artifactId>mapper-spring-boot-starter</artifactId> 
    	<version>版本号</version>
    </dependency>
    

    添加配置文件

    # 连接四大参数
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/springclound 
    spring.datasource.username=root 
    spring.datasource.password=root
    
    # 别名搜索
    mybatis.type-aliases-package=com.zml.user.bean
    

    注解扫描

    需要在启动类Application. class上加@MapperScan(“com.zml.user.mapper”) 来扫描mapper包路径,可以不用在每一个mapper类上加@Mapper注解来声明

    生成实体类

    @Data
    // 表名和类名不一致需要指定,中间有下划线会自动转换为小驼峰写法
    @Table(name = "bill_")
    public class Bill {
    	// 指定主键
    	@Id
    	// 指定主键策略
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	// 字段名和成员变量名不一致同样需要手动指定
    	@Column(name = "id_")
    	private Integer id;
    }
    

    编写dao层

    // tk.mybatis会帮我们自动生成大量的sql语句
    public interface UserMapper extends Mapper<User> { 
    }
    

    编写service层

    @Service
    public class UserServiceImpl implements UserService {
    	// 将dao注入进来
        @Autowired
        private UserMapper userMapper;
    
    	// 简单的使用
        @Override
        public User queryById(Long id){
            return userMapper.selectByPrimaryKey(id);
        }
    }
    
    展开全文
  • mybatis、mybatis-spring和tkmybatis的关系 定义 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis ...
  • 前提:基于SpringBoot项目,正常集成Mybatis后,为了简化sql语句的编写,甚至达到无mapper.xml文件。在本篇总结教程,不在进行SpringBoot集成... 引入TkMybatis的Maven依赖2. 实体类的相关配置,@Id,@Table3. Mapper继...
  • 上一章把SpringBoot与TkMybatis整合了起来,本章再把HikariCP也加进来。 1、pom.xml文件 因为SpringBoot已经包含了HikariCP的相关依赖,无需添加,所以这里相对于上一篇没有变动 2、application.properties...
  • tkmybatis最精简整合,最精简整合指的是手动导入最精简的自动配置类ImportTkMybatis.java代码如下package com.litong.spring.boot.mybatis.tk;import org.springframework.boot.autoconfigure.jdbc....
  • 上一章把SpringBoot与TkMybatis、hikaricp整合了起来,本章再把pagehelper也加进来。 1、增加POM依赖 pagehelper-spring-boot-starter这里对应的mapper-spring-boot-starter版本是2.1.5 <!--pagehelper...
  • tkmybatis VS mybatisplus

    万次阅读 热门讨论 2019-07-10 20:30:15
    文章目录TkMybatis Vs MybatisPlus1.基础CRUD BaseMapper2.代码生成器3. 全局主键 Sequence主键4. 热加载5. 分页Mybatis-PlusTk.Mybatis6. 额外功能Mybatis-PlusTk.Mybatis TkMybatis Vs MybatisPlus 1.基础CRUD ...
  • Tkmybatis使用

    2020-08-20 13:48:36
    一 什么是TKmybatis 就我个人的理解而言,tkmybatis就是一个框架或者说工具,其在mybatis的基础上进行了再次封装。使得我们可以不用写简单而重复的CRUD代码,又一次解放了生产力。 如果涉及到多表查询,需要自己写...
  • tkmybatis.rar

    2020-08-20 14:43:12
    Springboot整合TkMybatis,效果跟mybatis-plus一致, 省掉CRUD的代码编写,让我们一起优雅。
  • 首先,pom不能引用mybatis-spring-boot-starter,加入tk mybatis依赖: <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --> <dependency> <groupId&...
  • 一、初始tkMybatis(1)简化sql语句,取消使用mapper.xml文件。(2)方便统一管理,简化代码,取消臃肿的代码。二、springboot集成tkMybatis步骤(1)、引入TkMybatis的Maven依赖。(2)、配置对应实体类(表对应的实体)。(3)...
  • TKmybatis的使用,MyBatis的Mapper接口、Example方法

    千次阅读 多人点赞 2020-11-28 23:13:00
    文章目录TKmybatis的使用TKmybatis的常用注解Mapper中的方法(dao继承可用)Example方法设置查询条件 TKmybatis的使用 pom.xml导入依赖 <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --> &...
  • 【Mybatis】TKMybatis 介绍和使用

    千次阅读 2020-05-24 23:19:04
    一、什么是 TKMybatis TKMybatis 是基于 Mybatis 框架开发的一个工具,内部实现了对单表的基本数据操作,只需要简单继承 TKMybatis 提供的接口,就能够实现无需编写任何 sql 即能完成单表操作。 二、 TKMybatis ...
  • SpringBoot整合TKmybatis

    千次阅读 2019-09-30 22:48:32
    SpringBoot整合TKmybatis 前言:最近公司在用tkmybatis,于是乎去看了一下,挺好用的,所以在这里记录一下其用法。 一 什么是TKmybatis 就我个人的理解而言,tkmybatis就是一个框架或者说工具,其在mybatis的基础上...
  • springboot整合tkmybatis

    2019-07-02 10:47:00
    tkmybatis是什么?  tkmybatis是为了简化mybatis单表的增删改查而诞生的,极其方便的使用MyBatis单表的增删改查,在使用mybatis单表增删改查时,可以直接调用tkmybatis中提供的方法直接调用而不用写xml配置文件。...
  • tkmybatis基础使用+mybatis generator

    千次阅读 2019-07-12 17:13:31
    为啥要用tkmybatis : https://www.cnblogs.com/wz2cool/p/7286377.html 使用流程: 1. pom <!-- tkmybatis--> <dependency> <groupId>tk.mybatis</groupId> &...
  • springboot使用tkmybatis

    2019-10-11 15:57:34
    springboot使用tkmybatis tkmybatis是对mybatis的进一步封装,它对基本的单表的增删改查又做了进一步封装.如果有复杂的需求也可以自定义SQL. pom依赖 <!--tkmybatis--> <dependency> <groupId>...
  • TkMyBatis大杂烩

    千次阅读 2018-06-27 17:49:58
    1. 什么是TkMyBatis TkMyBatis是一个MyBatis的通用Mapper工具 2. 引入TkMyBatis到SpringBoot项目 以Gradle为例 compile 'tk.mybatis:mapper-spring-boot-starter:2.0.3' 3. 基本用法 创建模型类(不需要...
  • TkMybatis 是什么?

    2020-12-01 16:44:04
    一、TkMybatis 二、怎么用? 三、底层原理 四、结语 回到顶部 一、TkMybatis Tkmybatis 是基于 Mybatis 框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何 sql 语句,这极大地提高了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,926
精华内容 1,170
关键字:

tkmybatis