前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java用tkmapper分组查询_springboot2.x整合tkmapper的示例代码

java用tkmapper分组查询_springboot2.x整合tkmapper的示例代码

作者头像
Java架构师必看
发布2022-10-04 14:02:56
4170
发布2022-10-04 14:02:56
举报
文章被收录于专栏:Java架构师必看Java架构师必看

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java用tkmapper分组查询_springboot2.x整合tkmapper的示例代码,希望能够帮助大家进步!!!

springboot整合tkmapper

1.导入pom依赖

1.1 导入springboot的parent依赖

spring-boot-starter-parent

org.springframework.boot

2.1.9.RELEASE

1.2 导入具体依赖

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

mysql

mysql-connector-java

5.1.32

com.alibaba

druid-spring-boot-starter

1.1.10

tk.mybatis

mapper-spring-boot-starter

2.1.5

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.10

org.projectlombok

lombok

com.alibaba

fastjson

1.2.68

  1. 添加tkmapper数据库连接配置

创建application.yml配置类

spring:

datasource:

type: com.alibaba.druid.pool.DruidDataSource # 连接池指定 springboot2.02版本默认使用HikariCP 此处要替换成Druid

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql:///pethome?serverTimezone=Asia/Shanghai&characterEncoding=utf-8

username: root

password: qwe123

druid:

initial-size: 5 # 初始化时建立物理连接的个数

min-idle: 5 # 最小连接池连接数量,最小空闲数量

max-active: 20 # 最大连接池连接数量,最大活跃连接数

max-wait: 60000 # 配置获取连接等待超时的时间

timeBetweenEvictionRunsMillis: 60000

minEvictableIdleTimeMillis: 300000

validationQuery: SELECT 1

testWhileIdle: true

testOnBorrow: true

testOnReturn: false

poolPreparedStatements: true

maxPoolPreparedStatementPerConnectionSize: 20

filters: stat,wall

connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

stat-view-servlet:

allow: 0.0.0.0 # 允许哪些IP访问druid监控界面,多个IP以逗号分隔

login-username: admin # 设置登录帐号

login-password: 123456 # 设置登录密码

reset-enable: false # 是否允许重置数据

url-pattern: /database/* # 默认访问根路径是:/druid/;也可以自定义设置

mybatis配置

mybatis:

configuration:

map-underscore-to-camel-case: true

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 设置控制台输入执行的sql语句

type-aliases-package: org.example.model

tkmapper配置

mapper:

not-empty: false

identity: mysql #指定tkmapper加载的数据库

  1. 在启动类上添加扫描注解

MainApp.java

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication

@MapperScan(basePackages = "org.example.mapper")

public class App {

public static void main(String[] args) {

SpringApplication.run(App.class);

}

}

4.tkmapper的使用

4.1 创建mapper.java

public interface ProductMapper extends Mapper {

}

4.2 创建表对应的实体类TProduct

@Data

public class TProduct {

@Id //指定主键的注解

private Long id;

private String name;

private String resources;

private Double saleprice;

private java.util.Date offsaletime;

private java.util.Date onsaletime;

private Long state;

private String costprice;

private java.util.Date createtime;

private Long salecount;

}

4.3 添加测试类,进行单表的CRUD操作

@SpringBootTest

@RunWith(SpringRunner.class)

public class AppTest {

@Autowired

private ProductMapper productMapper;

@Test//查询所有

public void findAll(){

List tProducts = productMapper.selectAll();

for (TProduct tProduct : tProducts) {

System.out.println(tProduct);

}

}

@Test

public void insert(){

TProduct product = new TProduct();

product.setName("我是测试的");

product.setCreatetime(new Date());

product.setState(1L);

productMapper.insert(product);

}

@Test

public void updateById(){

TProduct product = new TProduct();

product.setId(174L);

product.setName("我是测试");

//如果修改时,只想改变更新的name值,其他值不改

//下面这个方法,是无论修改的值是否为空,将全部修改

// productMapper.updateByPrimaryKey(product);

//下面的方法,只改非空的字段.

//注意:tkmapper中,凡是方法名以Selective结尾的,就是在拼接动态sql

//即,不更新非空的字段

product.setCreatetime(new Date());

productMapper.updateByPrimaryKeySelective(product);

}

@Test//删除操作

public void delete(){

productMapper.deleteByPrimaryKey(174L);

}

4.4 多条件查询和分页查询

@SpringBootTest

@RunWith(SpringRunner.class)

public class QueryTest {

@Autowired

private ProductMapper productMapper;

@Test //根据多条件动态查询

public void queryByParam(){

//多条件查询

Example example = new Example(TProduct.class);

// //添加第1个条件 name:模糊查询

// example.and().andLike("name","%洗澡8%");

//

// //添加第2个条件 :价格在100以内

// example.and()

// .andGreaterThanOrEqualTo("saleprice",0).andLessThanOrEqualTo("saleprice",100);

//

// //添加第3个条件:状态 state =1

// example.and().andEqualTo("state",1);

//优化Sql中的括号 : 当多个条件如果是 平级,则不用example.and()去追加条件

Example.Criteria and = example.and();//Criteria对象:就是用于拼接查询条件,每次执行example.and()或者example.or()将都会创建一个新的查询条件的拼接对象(意味着多一组())

and.andLike("name","%洗澡8%").orEqualTo("state",1);

//再创建一组新的区间查询条件,这个条件它要加(),所以你要重新通过 example对象获取

example.and().andGreaterThanOrEqualTo("saleprice",0).andLessThanOrEqualTo("saleprice",100);

List tProducts = productMapper.selectByExample(example);

for (TProduct tProduct : tProducts) {

System.out.println(tProduct);

}

}

@Test //分页查询

public void queryByPage(){

//不带条件的分页查询

//如果要进行分页查询,只需在调用查询的方法前,设置分页参数即可

//特点注意:当前设置的分页参数,只适用于离它最近的这条查询

PageHelper.startPage(1,3);

//List tProducts = productMapper.selectAll();

PageInfo pageInfo = new PageInfo<>(productMapper.selectAll());

/*

pageInfo中的常用的方法:

总记录数:pageInfo.getTotal()

总页数:pageInfo.getPages()

每页的数据列表:pageInfo.getList()

*/

System.out.println(pageInfo);

}

4.5 添加数据后,立马得到添加数据的主键

当前这个主键是由数据库进行【自增长】设置的

在实体类的主键ID上添加如下配置

public class TProduct {

@Id //指定主键的注解

@GeneratedValue(strategy= GenerationType.IDENTITY)

private Long id;

在需要获取的地方,直接调用get方法即可

@Test //添加新数据后,获取 自增长主键

public void insertAndGetId(){

TProduct product = new TProduct();

product.setName("我是测试的");

product.setCreatetime(new Date());

product.setState(1L);

productMapper.insert(product);

System.out.println(product.getId());

}

到此这篇关于springboot2.x整合tkmapper的文章就介绍到这了,更多相关springboot2.x整合tkmapper内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-292,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • url-pattern: /database/* # 默认访问根路径是:/druid/;也可以自定义设置
  • mybatis配置
  • tkmapper配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档