最新SpringBoot + Mybatis Plus + ClickHouse增删改查入门教程(1),springmvc面试问题

最后

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

@Override

protected String sqlSet(boolean logic, boolean ew, TableInfo table, boolean judgeAliasNull, final String alias,

final String prefix) {

String sqlScript = table.getAllSqlSet(logic, prefix);

if (judgeAliasNull) {

sqlScript = SqlScriptUtils.convertIf(sqlScript, String.format(“%s != null”, alias), true);

}

if (ew) {

sqlScript += NEWLINE;

sqlScript += SqlScriptUtils.convertIf(SqlScriptUtils.unSafeParam(U_WRAPPER_SQL_SET),

String.format(“%s != null and %s != null”, WRAPPER, U_WRAPPER_SQL_SET), false);

}

sqlScript = convertSet(sqlScript);

return sqlScript;

}

/**

* 去掉sest 和 suffixOverrides=","代表去掉第一个逗号

* @param sqlScript

* @return

*/

public static String convertSet(final String sqlScript) {

return “<trim prefix=”" suffixOverrides=“,”> " + sqlScript + “\n” + “”;

}

}

3、ClickHouseSqlInjector.java 注册方法,继承 DefaultSqlInjector

package com.demo.infrastructure.injector;

import com.baomidou.mybatisplus.core.injector.AbstractMethod;

import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;

import com.demo.infrastructure.injector.methods.DeleteClickHouse;

import com.demo.infrastructure.injector.methods.UpdateByIdClickHouse;

import com.demo.infrastructure.injector.methods.UpdateClickHouse;

import java.util.List;

/**

* 注册方法

* @author liuxiansong

*/

public class ClickHouseSqlInjector extends DefaultSqlInjector {

@Override

public List getMethodList(Class<?> mapperClass) {

/**

* 这里很重要,先要通过父类方法,获取到原有的集合,不然会自带的通用方法会失效的

*/

List methodList = super.getMethodList(mapperClass);

/***

* 添加自定义方法类

*/

methodList.add(new UpdateByIdClickHouse());

methodList.add(new UpdateClickHouse());

methodList.add(new DeleteClickHouse());

return methodList;

}

}

4、编写SuperMapper 继承BaseMapper,让所有Mapper 继承extends

package com.demo.domain.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import org.apache.ibatis.annotations.Param;

import java.io.Serializable;

/**

* @author liuxiansong

* 自定义方法

*/

@SuppressWarnings(“all”)

public interface SuperMapper extends BaseMapper {

/**

* @return

* @Description: 删除并填充删除人信息

* @param: id 主键id

* @auther: zpq

* @date: 2020/11/10 11:47 上午

*/

boolean updateByIdClickHouse(@Param(“et”) T entity);

/**

* @return

* @Description: 删除并填充删除人信息

* @param: id 主键id

* @auther: zpq

* @date: 2020/11/10 11:47 上午

*/

boolean updateClickHouse(@Param(“et”) T entity, @Param(“ew”) Wrapper updateWrapper);

/**

* 主键删除

* @param id

* @return

*/

int deleteByIdClickHouse(Serializable id);

}

另外,如果您正在学习Spring Cloud,推荐一个连载多年还在继续更新的免费教程:https://blog.didispace.com/spring-cloud-learning/

5、单元测试看效果

package com.demo.test;

import com.demo.DemoClickHouse;

import com.demo.domain.dataobject.User;

import com.demo.domain.service.UserService;

import com.demo.infrastructure.util.page.PageResult;

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;

@RunWith(SpringRunner.class)

@SpringBootTest(classes = DemoClickHouse.class)

public class UserMapperTest {

@Autowired

UserService userService;

@Test

public void findById_Test() {

User byId = userService.findById(1);

System.out.println(“查询用户ID=1信息:” + byId);

}

@Test

public void page_Test() {

User user = new User();

Integer page = 1;

Integer limit = 2;

PageResult userList = userService.page(user, page, limit);

System.out.println(“查询用户信息分页:” + userList);

}

@Test

public void create_Test() {

User user = new User();

user.setUserName(“张三”);

user.setPassWord(“123”);

user.setPhone(“12312222”);

user.setEmail(“326427540@qq.com”);

userService.create(user);

System.out.println(“创建:” + user);

}

@Test

public void update_Test() {

User user = new User();

user.setId(1395347901827317761l);

user.setUserName(“小李飞刀”);

user.setPassWord(“123”);

user.setPhone(“12312222”);

user.setEmail(“326427540@qq.com”);

userService.update(user);

System.out.println(“创建:” + user);

}

@Test

public void delete_Test() {

userService.delete(1l);

System.out.println(“删除:” + 1l);

}

}

71374ee52509b90da08391b7131d0fca.png

0f45e56a9ace5bbca9e8609d584cc4f5.png

源码:https://github.com/saimen90/clickhouse

往期推荐

网传字节跳动、腾讯将执行1075和965工作制?加班要审批才行!

后端开挂:3行代码 = 8个接口

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。

面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。

面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!

[外链图片转存中…(img-NS4IkrJN-1715648920914)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值