热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Tk.maybatis整合orm框架

Tk.maybatis是集成好的一套简单的增删改查的orm框架。--------------------------分割线----------------------1、首先我们在

Tk.maybatis是集成好的一套简单的增删改查的orm框架。
--------------------------分割线----------------------
1、首先我们在建好的springboot的工程的pom.xml中加入tk.mybatis的maven依赖

    
        tk.mybatis
        mapper-spring-boot-starter
        2.0.4
    
    
    
        com.github.pagehelper
        pagehelper-spring-boot-starter
        1.2.9
    
    
    
        mysql
        mysql-connector-java
        ${mysql.version}
    

2、在application.properties中配置mybatis的扫描路径
使用Tk.maybatis整合orm框架
3、在mybatis底下创建mapper文件夹,并在mapper文件夹下新建一个mybatis_user.xml


	
	
	

使用Tk.maybatis整合orm框架

3、在application-dev.properties中配置数据库以及端口号
logging.cOnfig=classpath:config/logback-spring-dev.xml

spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=utf-8&serverTimezOne=GMT
spring.datasource.username=root
spring.datasource.password=123456

工程访问的端口

server.port=8080

使用Tk.maybatis整合orm框架

4、打开DemoApplication.Java ,注意2个地方
1)引入的是tk.mybatis.spring.annotation.MapperScan;而不是传统的mybatis的类
2) MapperScan代表当前的mybatis自动扫描dao的位置,如果不配置这个扫描,在我们调用dao层方法的时候将会报我们调用的方法没绑定的错误,因此一定

package com.test.demo;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan(“com.test.demo.*.dao”)
public class DemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
}

}
使用Tk.maybatis整合orm框架
------------------------------分割线---------------------------------
到此我们就完成了我们的mybatis的orm框架的集成。
1、下面我们将创建UUIdGenId.java进行测试,该工具类主要是用于生成基于我们tk.mybatis插件的数据库表的主键的生成规则,代码内容如下:

package com.test.demo.base;

import tk.mybatis.mapper.genid.GenId;

import java.util.UUID;

public class UUIdGenId implements GenId {
@Override
public String genId(String table, String column) {
return UUID.randomUUID().toString().replaceAll("-","");
}
}
2、实体类的创建
package com.test.demo.sys.entity;

import com.test.demo.base.UUIdGenId;
import tk.mybatis.mapper.annotation.KeySql;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

/**

  • create by lj on 2018/11/23
    /
    /
    *

    • @Id 告诉我们的tk.mybatis插件这个字段是一个主键
    • @Column(name = “userId”)告诉我们的tk.mybatis插件我们的实体中定义的属性与数据库中属性的映射关系
    • 假定我们数据库的字段命名是user_id,然后我们实体中是private String userId,那么这时候我们的注解的写法是@Column(name = “user_id”),这样他们就会自动产生映射关系
    • @KeySql(genId = UUIdGenId.class) 这是tk.mybatis插件给予的一个自动生成自定义主键的支持,因此主键的生成规则将会使用UUIdGenId中的主键生成规则来进行生成
      */
      @Table(name = “t_user”)
      public class Tuser {

    @Id
    @Column(name = “user_id”)
    @KeySql(genId = UUIdGenId.class)
    private String user_id;

    // 用户账号
    @Column(name = “name”)
    private String name;

    // 用户密码
    @Column(name = “psw”)
    private String psw;

    public String getUser_id() {
    return user_id;
    }

    public void setUser_id(String user_id) {
    this.user_id = user_id;
    }

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getPsw() {
    return psw;
    }

    public void setPsw(String psw) {
    this.psw = psw;
    }
    }

使用Tk.maybatis整合orm框架

3、创建dao
package com.test.demo.sys.dao;

import tk.mybatis.mapper.common.Mapper;
import com.test.demo.sys.entity.Tuser;
/**

  • create by lj on 2018/11/23
    */
    public interface UserDao extends Mapper {
    }

使用Tk.maybatis整合orm框架
4、因为前面已经创建了一个user.xml所以此处就不再创建了
5、在service包中创建一个userservice.java的文件
package com.test.demo.sys.service;

import com.test.demo.sys.dao.UserDao;
import com.test.demo.sys.entity.Tuser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional(rollbackFor = {IllegalArgumentException.class})
public class UserService {
@Autowired
private UserDao userDao;

public Tuser selectByPrimaryKey(Tuser entity) {
    return userDao.selectByPrimaryKey(entity);
}

//删除
public int delectByPrimaryKey(Tuser entity) {
    return userDao.deleteByPrimaryKey(entity.getUser_id());
}

//添加
public int addByPrimaryKey(Tuser entity) {
    return userDao.insertSelective(entity);
}

//修改
public int changeByPrimaryKey(Tuser entity) {
    return userDao.updateByPrimaryKey(entity);
}

}

使用Tk.maybatis整合orm框架
6、创建controller层的类
package com.test.demo.sys.controller;

import com.test.demo.sys.entity.Tuser;
import com.test.demo.sys.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**

  • create by lj on 2018/11/9
    */

@Controller
@RequestMapping("/main")
public class firstController {

@GetMapping("/welcome")
public String welcome() {
    return "welcome";
}


@Autowired
private UserService userService;

@GetMapping("selectByPrimaryKey")
@ResponseBody
public Tuser selectByPrimaryKey(Tuser entity) {
    return userService.selectByPrimaryKey(entity);
}

@GetMapping("deleteByPrimaryKey")
@ResponseBody
public int deleteByPrimaryKey(Tuser entity) {
    return userService.delectByPrimaryKey(entity);
}

@GetMapping("addByPrimaryKey")
@ResponseBody
public int addByPrimaryKey(Tuser entity) {
    return userService.addByPrimaryKey(entity);
}
@GetMapping("updateByPrimaryKey")
@ResponseBody
public int updateByPrimaryKey(Tuser entity) {
    return userService.changeByPrimaryKey(entity);
}

}

现在我们就可以运行工程,如查询,我的工程中目前的数据如下
使用Tk.maybatis整合orm框架
http://127.0.0.1:8080/main/selectByPrimaryKey?user_id=3
使用Tk.maybatis整合orm框架
-----------------------------分割线------------------------------
以上是用浏览器来测试接口,现在我们可以使用swagger2,来对有post接口进行何测试。

1、pom.xml加入如下的maven依赖:


    io.springfox
    springfox-swagger2
    2.6.1



    io.springfox
    springfox-swagger-ui
    2.6.1

2、
使用Tk.maybatis整合orm框架

package com.test.demo.base;

import com.google.common.base.Predicate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**

  • create by lj on 2018/11/23
    */

@Configuration
@EnableSwagger2
public class SwaggerConfig {

@Bean
public Docket createRestApi() {
    Predicate predicate = new Predicate() {
        @Override
        public boolean apply(RequestHandler input) {
            Class declaringClass = input.declaringClass();
            if (declaringClass.isAnnotationPresent(RestController.class)) // 被注解的类
                return true;
            if (input.isAnnotatedWith(ResponseBody.class)) // 被注解的方法
                return true;
            return false;
        }
    };
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .useDefaultResponseMessages(false)
            .select()
            .apis(predicate)
            .build();
}

private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title("swagger2 接口测试专用页面!")//大标题
            .version("1.0")//版本
            .build();
}

}

接着我们启动我们的工程,访问http:\127.0.0.1:8080\swagger-ui.html,当大家看到如下的页面的时候说明我们的接口测试工具已经集成完成了,以后我们所有通过controller注解的接口都会在这个页面上展示出来。使用Tk.maybatis整合orm框架


推荐阅读
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
author-avatar
curlt_357
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有