在springboot环境下tk-mybatis的使用记录
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的使用记录的更多相关文章
- 项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题
通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题 关键字 springboot热部署 ClassCastException异常 反射 ...
- springboot集成下,mybatis的mapper代理对象究竟是如何生成的
前言 开心一刻 中韩两学生辩论. 中:端午节是属于谁的? 韩:韩国人! 中:汉字是谁发明的? 韩:韩国人! 中:中医是属于谁的? 韩:韩国人! 中:那中国人到底发明过什么? 韩:韩国人! 前情回顾 M ...
- springboot环境下配置过滤器和拦截器
以前我们在配置过滤器和拦截器的时候,都是一个类继承一个接口,然后在xml中配置一下就ok 但是,但是,这是springboot的环境,没有xml的配置.所以我们还要继续学习啊啊啊啊啊~~~~~ 先简单 ...
- MyBatisPlus环境下使用MyBatis的配置类
通过@Configuration使用MyBatis配置类的资料比较少,大部分都是通过XML的形式.找了好久,最终还是通过官方的文档找到了解决方法:http://www.mybatis.org/spri ...
- 非Spring环境下使用Mybatis操作数据库的流程
准备工作 1, 导入mybatis-3.2.7.jar,mysql-connector-5.1.25-bin.jar两个jar包 2, 在数据库中创建一个db_test数据库,库中有一个表为use ...
- SpringBoot环境中使用MyBatis代码生成工具
一.Maven配置文件中添加如下依赖 <dependency> <groupId>org.mybatis.generator</groupId> <artif ...
- SpringBoot环境下使用测试类注入Mapper接口报错解决
当我们在进行开发中难免会要用到测试类,而且测试类要注入Mapper接口,如果测试运行的时候包空指针异常,看看测试类上面的注解是否用对! 正常测试我们需要用到的注解有这些: @SpringBootTes ...
- SpringBoot环境下java实现文件的下载
思路:文件下载,就是给服务器上的文件创建输入流,客户端创建输出流,将文件读出,读入到客户端的输出流中,(流与流的转换) package com.cst.icode.controller; import ...
- Centos7.4 版本环境下安装Mysql5.7操作记录
Centos7.x版本下针对Mysql的安装和使用多少跟之前的Centos6之前版本有所不同的,废话就不多赘述了,下面介绍下在centos7.x环境里安装mysql5.7的几种方法: 一.yum方式安 ...
随机推荐
- oracle函数 TO_NUMBER(X[[,c2],c3])
[功能]将字符串X转化为数字型 [参数]c2,c3,字符型,参照to_char() [返回]数字串 [相反] to_char(date[[,c2],c3]) [示例] select TO_NUMBER ...
- oracle函数 RAWTOHEX(c1)
[功能]将一个二进制构成的字符串转换为十六进制 [参数]c1,二进制的字符串 [返回]字符串 [示例] select RAWTOHEX('A123') from dual;
- SDUT-2116_数据结构实验之链表一:顺序建立链表
数据结构实验之链表一:顺序建立链表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入N个整数,按照输入的顺序建立单链 ...
- 14-1 jquery的dom操作和事件对象
一 jquery的操作有,插入,修改,删除,克隆.具体见下方代码实例: <!DOCTYPE html> <html lang="en"> <head& ...
- 19-3 auth模块
参考:https://www.cnblogs.com/liwenzhou/p/9030211.html 一 auth使用django默认的user表 1 auth常用方法 1. authenticat ...
- 同一个C语言工程不同C文件之间的函数互相调用问题
定义一个function.h文件来声明这些函数: //#ifndef __FUNCTION_H__//#define __FUNCTION_H__ int fun(int,int); int ...
- 神经网络入门——6and感知机
AND 感知器练习 AND 感知器的权重和偏置项是什么? 把权重(weight1, weight2)和偏置项 bias 设置成正确的值,使得 AND 可以实现上图中的运算. 在这个例子 ...
- SQL server无法绑定由多个部分绑定的标示符
原因https://blog.csdn.net/wolfalcon/article/details/54578215给了我启发,原来有犯错在insert和update的使用上了对于已存在的表(表中有字 ...
- ras 加解密类,支持截取
class RsaEncrypt{ private $_privateKey = false; private $_publicKey = false; /** * 私钥解密 * @param $da ...
- JavaScript中判断整数的方法
一.使用取余运算符判断 任何整数都会被1整除,即余数是0.利用这个规则来判断是否是整数. 1 2 3 4 5 function isInteger(obj) { return obj%1 == ...