1. 新建springboot工程

访问https://start.spring.io/,新建一个springboot工程。

自动生成的工程主要的注意点如下:

1)pom.xml

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.2.RELEASE</version>

<relativePath /> <!-- lookup parent from repository -->

</parent>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

将Spring Boot应用打包为可执行的jar或war文件:

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

2. 使用tk-mybatis构建数据库访问示例

1)application.properties

resources目录下的application.properties文件配置如下:

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

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true&characterEncoding=utf8&useSSL=false

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.max-idle=10

spring.datasource.max-wait=10000

spring.datasource.min-idle=5

spring.datasource.initial-size=5

logging.level.com.tkmybatislearning.demo=DEBUG

2)entity

新建entity实体类Country.java, 命名与数据库的表名country对应:

package com.tkmybatislearning.demo.entity;

import javax.persistence.Id;

public class Country {

@Id

private Integer id;

private String  countryname;

private String  countrycode;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getCountryname() {

return countryname;

}

public void setCountryname(String countryname) {

this.countryname = countryname;

}

public String getCountrycode() {

return countrycode;

}

public void setCountrycode(String countrycode) {

this.countrycode = countrycode;

}

}

3)mapper

新增mapper接口文件CountryMapper.java,继承tk的Mapper,可以自定义方法:

package com.tkmybatislearning.demo.mapper;

import org.apache.ibatis.annotations.Select;

import com.tkmybatislearning.demo.entity.Country;

import tk.mybatis.mapper.common.Mapper;

public interface CountryMapper extends Mapper<Country> {

@Select("select * from country where countryname = #{countryname}")

Country selectByCountryName(String countryname);

}

4)service

新增service服务文件CountryService.java,自动注入CountryMapper,可以使用tk自带的方法,对数据库表进行CRUD操作:

package com.tkmybatislearning.demo.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.tkmybatislearning.demo.entity.Country;

import com.tkmybatislearning.demo.mapper.CountryMapper;

@Service

public class CountryService {

@Autowired

private CountryMapper countryMapper;

public void testCountry() {

//从 MyBatis 或者 Spring 中获取 countryMapper,然后调用 selectAll 方法

List<Country> countries = countryMapper.selectAll();

//根据主键查询

Country country = countryMapper.selectByPrimaryKey(1);

//或者使用对象传参,适用于1个字段或者多个字段联合主键使用

Country query = new Country();

query.setId(1);

country = countryMapper.selectByPrimaryKey(query);

}

}

3. 新建应用启动程序

DemoApplication.java:

package com.tkmybatislearning.demo;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication

@MapperScan("com.tkmybatislearning.demo.mapper")

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

4. 使用单元测试验证示例

新建DemoApplicationTests.java:

package com.tkmybatislearning.demo;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import com.tkmybatislearning.demo.service.CountryService;

@RunWith(SpringRunner.class)

@SpringBootTest(classes = DemoApplication.class)

public class DemoApplicationTests {

@Autowired

private CountryService countryService;

@Test

public void contextLoads() {

countryService.testCountry();

}

}

在springboot环境下tk-mybatis的使用记录的更多相关文章

  1. 项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题

    通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题 关键字 springboot热部署  ClassCastException异常 反射 ...

  2. springboot集成下,mybatis的mapper代理对象究竟是如何生成的

    前言 开心一刻 中韩两学生辩论. 中:端午节是属于谁的? 韩:韩国人! 中:汉字是谁发明的? 韩:韩国人! 中:中医是属于谁的? 韩:韩国人! 中:那中国人到底发明过什么? 韩:韩国人! 前情回顾 M ...

  3. springboot环境下配置过滤器和拦截器

    以前我们在配置过滤器和拦截器的时候,都是一个类继承一个接口,然后在xml中配置一下就ok 但是,但是,这是springboot的环境,没有xml的配置.所以我们还要继续学习啊啊啊啊啊~~~~~ 先简单 ...

  4. MyBatisPlus环境下使用MyBatis的配置类

    通过@Configuration使用MyBatis配置类的资料比较少,大部分都是通过XML的形式.找了好久,最终还是通过官方的文档找到了解决方法:http://www.mybatis.org/spri ...

  5. 非Spring环境下使用Mybatis操作数据库的流程

    准备工作 1,  导入mybatis-3.2.7.jar,mysql-connector-5.1.25-bin.jar两个jar包 2,  在数据库中创建一个db_test数据库,库中有一个表为use ...

  6. SpringBoot环境中使用MyBatis代码生成工具

    一.Maven配置文件中添加如下依赖 <dependency> <groupId>org.mybatis.generator</groupId> <artif ...

  7. SpringBoot环境下使用测试类注入Mapper接口报错解决

    当我们在进行开发中难免会要用到测试类,而且测试类要注入Mapper接口,如果测试运行的时候包空指针异常,看看测试类上面的注解是否用对! 正常测试我们需要用到的注解有这些: @SpringBootTes ...

  8. SpringBoot环境下java实现文件的下载

    思路:文件下载,就是给服务器上的文件创建输入流,客户端创建输出流,将文件读出,读入到客户端的输出流中,(流与流的转换) package com.cst.icode.controller; import ...

  9. Centos7.4 版本环境下安装Mysql5.7操作记录

    Centos7.x版本下针对Mysql的安装和使用多少跟之前的Centos6之前版本有所不同的,废话就不多赘述了,下面介绍下在centos7.x环境里安装mysql5.7的几种方法: 一.yum方式安 ...

随机推荐

  1. Datagrid添加右键菜单 标签: 三层EasyUI 2015-08-14 19:57 1029人阅读 评论(22)

    最近的一个项目前台使用的EasyUI,每个界面都有DataGrid控件,按照我们的想法,应该做出来的效果是单击选中,双击可编辑,当然右键也应该出现这些菜单按钮,想的挺好,那么该如何实现呢?一开始不知道 ...

  2. @bzoj - 4356@ Ceoi2014 Wall

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给出一个N*M的网格图,有一些方格里面存在城市,其中首都位于网格 ...

  3. AspNetPager 样式

    使用方法: 1.引入样式表. 将 想要使用的样式表加入到本页面<style type="text/css"></style>标记中,或者新建一个css文件如 ...

  4. oracle函数 dbtimezone

    [功能]:返回时区 [参数]:没有参数,没有括号 [返回]:字符型 [示例]select dbtimezone from dual;

  5. Libev源码分析08:Libev中的信号监视器

    Libev中的信号监视器,用于监控信号的发生,因信号是异步的,所以Libev的处理方式是尽量的将异步信号同步化.异步信号的同步化方法主要有:signalfd.eventfd.pipe.sigwaiti ...

  6. 06多次查询某区间内topk问题

            题目描述:给定一个数组,需要多次查找不同区间内的,第k大或者第k小的元素.         考虑题目是多次查找,如果采用只对查询区间内的元素进行排序的思路,然后输出第k大的数的策略,那 ...

  7. 整理了一下 ThinkPHP 历史 (2019-07-01)

    整理了一下 ThinkPHP 历史 ThinkPHP 一款国内最流行的 PHP 开源框架. 版本 发布日期 最后更新日期 总天数 ThinkPHP(FCS) 0.6 2006-01-15 2006-0 ...

  8. Android Button点击效果(按钮背景变色、文字变色)

    一. 说明 Android Button的使用过程中,我们会需要为Button添加点击效果,不仅仅按钮的背景色需要变化,而且有时,我们连文字的颜色都希望变化,我们可以使用StateListDrawab ...

  9. 2019-9-2-git-需要知道的1000个问题

    title author date CreateTime categories git 需要知道的1000个问题 lindexi 2019-09-02 10:12:31 +0800 2018-2-13 ...

  10. Wunder Fund Round 2016 (Div. 1 + Div. 2 combined)

    现在水平真的不够.只能够做做水题 A. Slime Combining 题意:就是给n个1给你.两个相同的数可以合并成一个数,比如说有两个相同的v,合并后的值就是v+1 思路:直接模拟栈 #inclu ...