摘要:整合想著每次搭建新項(xiàng)目時(shí)框架都要從新搭建,基本常用的也就哪幾種,現(xiàn)在就來搭建一種常用的后臺(tái)框架,以后新開小項(xiàng)目可以直接拿來使用項(xiàng)目整體結(jié)構(gòu)圖新建空白項(xiàng)目,選中依賴略,也可以完全根據(jù)本人代碼操作文件依賴項(xiàng)展示
springboot整合tkMapper
想著每次搭建新項(xiàng)目時(shí)框架都要從新搭建,基本常用的也就哪幾種,現(xiàn)在就來搭建一種常用的springboot后臺(tái)框架,以后新開小項(xiàng)目可以直接拿來使用
項(xiàng)目整體結(jié)構(gòu)圖
1.新建springboot空白項(xiàng)目,選中web依賴(略,也可以完全根據(jù)本人代碼操作)
2.pom文件依賴項(xiàng)展示
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.5.RELEASE com.cxt demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2 mysql mysql-connector-java 8.0.16 runtime tk.mybatis mapper-spring-boot-starter RELEASE tk.mybatis mapper 3.4.5 com.alibaba druid 1.1.3 org.springframework.boot spring-boot-maven-plugin org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 ${basedir}/src/main/resources/generator/generatorConfig.xml true true mysql mysql-connector-java 8.0.16 tk.mybatis mapper-generator 1.1.3
application.yml文件內(nèi)容
server: port: 8081 #數(shù)據(jù)源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource #Druid連接池 url: jdbc:mysql://localhost:3306/springboot-demo?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=true&nullCatalogMeansCurrent=true username: root #數(shù)據(jù)庫用戶名 password: root #數(shù)據(jù)庫密碼 driver-class-name: com.mysql.cj.jdbc.Driver #mysql驅(qū)動(dòng) initialSize: 10 #初始化連接池大小 minIdle: 10 #初始化最小連接池?cái)?shù)量 maxActive: 100 #初始化最大連接池?cái)?shù)量 maxWait: 6000 #配置獲取連接等待超時(shí)的時(shí)間 timeBetweenEvictionRunsMills: 6000 #配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒 minEvictableIdleTimeMillis: 30000 #配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒 validationQuery: SELECT "x" #測(cè)試連接 mybatis: mapper-locations: classpath:/mapper/*.xml configuration: map-underscore-to-camel-case: true #打印sql #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper: identity: MYSQL # 配置主鍵自動(dòng)增長(使用MYSQL原生方式) logging: level: com.cxt.demo: debug # 分頁插件 pagehelper: reasonable: true page-size-zero: true params: pageNum=start;pageSize=limit support-methods-arguments: true
新建MyBaseMapper,( 注意此接口不能被掃描到 *)
package com.cxt.demo.tk; import org.springframework.stereotype.Repository; import tk.mybatis.mapper.common.ExampleMapper; import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper; /** * @author liBai * @Classname MyBaseMapper * @Description TODO base mapper 不能被掃描 * @Date 2019-06-02 10:41 */ @Repository public interface MyBaseMapperextends Mapper , MySqlMapper , ExampleMapper { }
啟動(dòng)類添加掃描mapper
注意此處@MapperScan要引tk包下面的,否則會(huì)報(bào)錯(cuò)
(import tk.mybatis.spring.annotation.MapperScan;)
package com.cxt.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import tk.mybatis.spring.annotation.MapperScan; /** * @author liBai * mapperscan 要引tk包下面的 */ @SpringBootApplication @MapperScan(basePackages = "com.cxt.demo.dao") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
添加MybatisConfigurer配置類
package com.cxt.demo.config; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.boot.SpringBootConfiguration; import org.springframework.context.annotation.Bean; import javax.annotation.Resource; import javax.sql.DataSource; /** * @author liBai * @Classname MybatisConfigurer * @Description TODO * @Date 2019-06-02 10:42 */ @SpringBootConfiguration public class MybatisConfigurer { @Resource private DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactoryBean() throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setTypeAliasesPackage("com.cxt.demo.bean"); return bean.getObject(); } }
數(shù)據(jù)庫創(chuàng)建sql語句(測(cè)試tkmapper鏈接數(shù)據(jù)庫)
CREATE TABLE `test_sys` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, PRIMARY KEY (`id`,`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; #插入數(shù)據(jù) INSERT INTO `springboot-demo`.`test_sys` (`id`, `name`) VALUES ("1‘, "test1"); INSERT INTO `springboot-demo`.`test_sys` (`id`, `name`) VALUES ("2‘, "test2"); INSERT INTO `springboot-demo`.`test_sys` (`id`, `name`) VALUES ("3‘, "test3");
generator自動(dòng)生成bean,dao,mapper,generator配置內(nèi)容如下
點(diǎn)擊maven命令執(zhí)行生成相對(duì)應(yīng)的bean,dao,mapper
或者使用maven命令
mybatis-generator:generate –e
創(chuàng)建HelloController
package com.cxt.demo.controller; import com.cxt.demo.service.HelloService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author liBai * @Classname HelloController * @Description TODO * @Date 2019-06-02 10:49 */ @RestController @RequestMapping("/test") public class HelloController { @Autowired private HelloService helloService; @RequestMapping("/hello") public String hello(){ return helloService.sayHello(); } }
創(chuàng)建HelloService
package com.cxt.demo.service; /** * @author liBai * @Classname HelloService * @Description TODO * @Date 2019-06-02 10:49 */ public interface HelloService { String sayHello(); }
創(chuàng)建HelloServiceImpl實(shí)現(xiàn)
package com.cxt.demo.service.impl; import com.cxt.demo.bean.TestSys; import com.cxt.demo.dao.TestSysMapper; import com.cxt.demo.service.HelloService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * @author liBai * @Classname HelloServiceImpl * @Description TODO * @Date 2019-06-02 10:50 */ @Service @Slf4j public class HelloServiceImpl implements HelloService { @Autowired private TestSysMapper testSysMapper; @Override public String sayHello() { TestSys testSys = testSysMapper.selectByPrimaryKey("1"); log.debug("testSys = [{}]",testSys.toString()); return testSys.getName(); } }
瀏覽器測(cè)試,url中輸入 http://localhost:8081/test/hello 顯示
到此為止,springboot整合通用mapper,使用mysql的demo就結(jié)束了,后續(xù)整合請(qǐng)關(guān)注后續(xù)博客
源碼地址 https://github.com/TianPuJun/...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/77789.html
摘要:相隔很久,我又回來了,獻(xiàn)上一篇整合的教程給新手看一下吧,技術(shù)點(diǎn)不怎么有,最簡(jiǎn)單的配置,入手即用,那下面開始本章在我的上一篇文章為基礎(chǔ)繼續(xù)整合的,不知道的可以見我的整合整合下面開始引入依賴整合文件根據(jù)自己配置添加信息代碼,用戶 相隔很久,我又回來了,獻(xiàn)上一篇整合redis 的教程給新手看一下吧,技術(shù)點(diǎn)不怎么有,最簡(jiǎn)單的配置,入手即用,那下面開始 本章在我的上一篇文章為基礎(chǔ)繼續(xù)整合的,不知...
摘要:首先聲明下,是基于注釋來生成文檔的,它不基于任何框架,而且支持大多數(shù)編程語言,為了系列的完整性,所以標(biāo)了個(gè)題。二準(zhǔn)備工作安裝完安裝它的項(xiàng)目源碼。輸命令輸入目錄輸出目錄是我的工程名。 首先聲明下,apidoc是基于注釋來生成文檔的,它不基于任何框架,而且支持大多數(shù)編程語言,為了springboot系列的完整性,所以標(biāo)了個(gè)題。 一、apidoc簡(jiǎn)介 apidoc通過在你代碼的注釋來生成ap...
摘要:另外很容易構(gòu)建風(fēng)格的,簡(jiǎn)單優(yōu)雅帥氣,正如它的名字。配置一些基本的信息。三寫生產(chǎn)文檔的注解通過注解表明該接口會(huì)生成文檔,包括接口名請(qǐng)求方法參數(shù)返回信息的等等。四參考資料中使用構(gòu)建強(qiáng)大的文檔 swagger,中文拽的意思。它是一個(gè)功能強(qiáng)大的api框架,它的集成非常簡(jiǎn)單,不僅提供了在線文檔的查閱,而且還提供了在線文檔的測(cè)試。另外swagger很容易構(gòu)建restful風(fēng)格的api,簡(jiǎn)單優(yōu)雅帥氣...
前言 SpringBoot是一個(gè)全家桶,可以方便的集成各種開發(fā)工具。日志框架是一個(gè)在線應(yīng)用必需的,本文介紹了當(dāng)前主流日志框架Logback與SpringBoot的集成方法 準(zhǔn)備工作 完成SpringBoot 1024行代碼 - Getting Started(一個(gè)簡(jiǎn)單的web應(yīng)用) 具體步驟 1. 添加Logback的配置文件logback-springboot.xml 其中文件名需要為logba...
摘要:它使用約定大于配置的理念讓你的項(xiàng)目快速運(yùn)行起來。如何使用構(gòu)建工程第一步,當(dāng)然是安裝傻瓜式教程,請(qǐng)自行百度。包名,填完和后自動(dòng)生成,默認(rèn)即可。確認(rèn)無誤,點(diǎn)完成創(chuàng)建即可。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問題。 前言 新年立了個(gè) flag,好好運(yùn)營這個(gè)公眾號(hào)。具體來說,就是每周要寫兩篇文章在這個(gè)號(hào)發(fā)表。剛立的 flag 可不能這么快打臉。下面送上本周第...
閱讀 931·2023-04-26 01:34
閱讀 3365·2023-04-25 20:58
閱讀 3296·2021-11-08 13:22
閱讀 2119·2019-08-30 14:17
閱讀 2527·2019-08-29 15:27
閱讀 2680·2019-08-29 12:45
閱讀 3006·2019-08-29 12:26
閱讀 2818·2019-08-28 17:51