摘要:接著上一篇,我們在測試可以允許后,我們接著來寫一個(gè)查詢功能,一連接數(shù)據(jù)庫的查詢例子我來看看項(xiàng)目的結(jié)構(gòu)頂級父項(xiàng)目公司默認(rèn)有的父項(xiàng)目數(shù)據(jù)層
接著上一篇,我們在測試web可以允許后,我們接著來寫一個(gè)查詢功能,
一、 連接數(shù)據(jù)庫的查詢例子我來看看項(xiàng)目的結(jié)構(gòu):
tx-parent 頂級父項(xiàng)目(公司默認(rèn)有的) |- tx-manager ---------------------------pom.xml 父項(xiàng)目 |- tx-manager-mapper ---------------數(shù)據(jù)層 |- tx-manager-common ---------------工具層 |- tx-manager-bean ---------------實(shí)體層 |- tx-manager-service --------------服務(wù)層 |- tx-manager-web ---------------控制層
技術(shù)棧:
mqsql數(shù)據(jù)庫
druid連接池
mybatis持久層
spring這個(gè)就不說了吧
分析:
分模塊開發(fā),所以我們需要把:
實(shí)體放到 -> bean 項(xiàng)目中
mybatis的接口和映射文件放到 -> mapper 項(xiàng)目中
yml項(xiàng)目配置如:連接池,日志等 放到 -> web 項(xiàng)目中
下面我們開始動(dòng)手:
一、tx-manager-mapper1、創(chuàng)建數(shù)據(jù)庫、表(這個(gè)過程忽略),
2、添加依賴,我們需要依賴mybatis、mysql驅(qū)動(dòng)、連接池等。tx-manager-mapper的pom.xml內(nèi)容如下:
4.0.0 com.topinfo.manager tx-manager 1.0.0-SNAPSHOT tx-manager-mapper com.topinfo.manager tx-manager-bean 1.0.0-SNAPSHOT org.mybatis.spring.boot mybatis-spring-boot-starter com.github.pagehelper pagehelper-spring-boot-starter mysql mysql-connector-java com.alibaba druid src/main/java **/*.properties **/*.xml false
3、我們通過反向工程來生成 實(shí)體bean、 mybatis接口和映射文件, 并把他們拷貝到項(xiàng)目中,如圖:
二、tx-manager-bean1、把反向工程生成的實(shí)體復(fù)制到 bean 項(xiàng)目中;pom.xml 不需要引入其他,如圖:
1、編寫測試方法,編寫接口和實(shí)現(xiàn)類;
接口 ITxAccountService :
public interface ITxAccountService { /** * @Description: 新增賬戶 * @param: @param account * @param: @return * @return: TxResult */ public TxResult addTxAccount(TxAccount account); /** * @Description: 修改賬戶 * @param: @param account * @param: @return * @return: TxResult */ public TxResult updateTxAccount(TxAccount account); /** * @Description: 查看賬戶信息 * @param: @param accountId * @param: @return * @return: TxResult */ public TxResult queryTxAccount(String accountId); /** * @Description: 查詢賬戶列表 * @param: @param username * @param: @param page * @param: @param rows * @return: TxResult */ public TxResult queryTxAccountList(String username, int page, int rows); }
實(shí)現(xiàn)類 TxAccountServiceImpl:
/** * @ClassName: TxAccountServiceImpl * @Description: 賬戶服務(wù)類 * @author: 楊攀 * @date: 2019年1月10日 下午2:55:13 * @Copyright: 2019 www.tuxun.net Inc. All rights reserved. */ @Service public class TxAccountServiceImpl implements ITxAccountService { @Autowired private TxAccountMapper accountMapper; /** *四、tx-manager-webDescription: 新增賬戶
* @param account * @return * @see com.topinfo.manager.service.ITxAccountService#addTxAccount(com.topinfo.manager.bean.TxAccount) */ @Override public TxResult addTxAccount(TxAccount account){ return null; } @Override public TxResult updateTxAccount(TxAccount account){ return null; } @Override public TxResult queryTxAccount(String accountId){ //根據(jù)賬戶id查詢 TxAccount account = accountMapper.selectByPrimaryKey (accountId); if(null != account) { return TxResult.buildSuccess (account); } return TxResult.buildFailure (); } @Override public TxResult queryTxAccountList(String username, int pageNum, int rows){ return null; } }
tx-manager-web層我們需要做幾步:
1、連接池、日志的配置
2、controller的編寫
3、啟動(dòng)dao層的掃描
1、在application-dev.yml開發(fā)配置中,添加連接池的配置,同時(shí)設(shè)置Tomcat服務(wù)端口、模板thymeleaf、security 等, 內(nèi)容如下:
############################################################ ############# 開發(fā)環(huán)境配置 ############################################################ ## Tomcat服務(wù)端口 server: port: 8080 ############################################################ ############# 數(shù)據(jù)源配置 Druid ############################################################ druid: datasource: ## useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC url: jdbc:mysql://127.0.0.1:3306/tx-manager?characterEncoding=UTF-8&serverTimezone=UTC username: spring password: spring driverClass: com.mysql.jdbc.Driver spring: ############################################################ ## thymeleaf 模板配置 thymeleaf: cache: false ## 開發(fā)階段,關(guān)閉thymeleaf緩存 prefix: classpath:/templates/ suffix: .html security: user: name: admin password: 111111
說明: url后面需要添加 serverTimezone=UTC,否則啟動(dòng)會報(bào)異常
java.sql.SQLException: The server time zone value "?D1ú±ê×?ê±??"....
2、添加配置類
/** *@Description: 阿里連接池 *@Author:楊攀 *@Since:2018年6月28日下午5:18:02 */ @Configuration @ConfigurationProperties(prefix = "druid.datasource") public class DruidDataSourceConfig { @Autowired private Environment env; @Bean public DruidDataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(env.getProperty("druid.datasource.url")); dataSource.setUsername(env.getProperty("druid.datasource.username")); dataSource.setPassword(env.getProperty("druid.datasource.password")); dataSource.setInitialSize(5); dataSource.setMaxActive(50); dataSource.setMinIdle(0); dataSource.setMaxWait(60000); dataSource.setValidationQuery("SELECT 1"); dataSource.setTestOnBorrow(false); dataSource.setTestWhileIdle(true); dataSource.setPoolPreparedStatements(false); return dataSource; } }
3、在application.yml全局配置中添加日志的配置, mybatis的配置
############################################################ ############# 全局配置 ############################################################ # 多個(gè)環(huán)境配置文件切換 spring: profiles: active: dev ############################################################ ############# mybatis 配置 ############################################################ # mybatis配置 mybatis: # 配置mybatis的xml文件路徑 com.topinfo.manager.mapper mapper-locations: classpath:/com/topinfo/manager/mapper/*.xml # 配置Bean的路徑 type-aliases-package: com.topinfo.manager.bean # mybatis 分頁插件配置 pagehelper: reasonable: true supportMethodsArguments: true params: count=countSql ############################################################ ############# logging 日志配置 ############################################################ logging: # 日志配置文件,Spring Boot默認(rèn)使用classpath路徑下的日志配置文件 config: classpath:logback-boot.xml # 日志文件,絕對路徑或相對路徑 D:/upload, 最后不需要添加“/” dir: D:/upload # 日志輸出級別: 級別依次為【從高到低】:FATAL > ERROR > WARN > INFO > DEBUG level: # 配置spring web日志級別 root: INFO2、controller的編寫
controller的編寫
@RestController @RequestMapping("/account") public class AccountController { @Autowired private ITxAccountService accountService; @RequestMapping(value="/view", method=RequestMethod.GET) public TxResult view(String id) { return accountService.queryTxAccount (id); } }3、啟動(dòng)dao層的掃描
添加 @MapperScan 掃描注解, 然后運(yùn)行。
@SpringBootApplication @MapperScan(value={"com.topinfo.manager.mapper"}) //此注解表示動(dòng)態(tài)掃描DAO接口所在包 public class ManagerApplication { public static void main(String[] args) throws Exception{ SpringApplication.run (ManagerApplication.class, args); } }
在數(shù)據(jù)庫中添加了一條測試數(shù)據(jù),然后根據(jù)id訪問,最后結(jié)果如圖:
這樣,數(shù)據(jù)庫訪問就通了,接下來,我們繼續(xù)封裝,比如: 全局異常處理,安全模塊等等
補(bǔ)充:
TxResult 為自定義響應(yīng)格式,內(nèi)容如下:
/** * @ClassName: TxResult * @Description: 自定義響應(yīng)格式 * @author: 楊攀 * @date: 2018年12月26日 下午5:35:34 * @Copyright: 2018 www.tuxun.net Inc. All rights reserved. */ public class TxResult { public static final int STATE_SUCCESS = 1; //表示成功 public static final int STATE_FAILURE = -1; //表示失敗 /** *@Fields 成功返回: 1 失敗返回:-1 或 其他錯(cuò)誤碼 */ private Integer errcode; /** *@Fields 返回成功或失敗的信息提示. */ private String message; /** *@Fields 返回的數(shù)據(jù),不管是單個(gè)對象還是對個(gè)對象,統(tǒng)一放到List中. */ private List data; /** * @Fields expfield : 擴(kuò)展字段 */ private String expfield; private TxResult(int code, String message, Object object, String expfield) { this.errcode = code; this.message = message; this.expfield = expfield; if (null != object) { if(object instanceof List) { //如果是列表則 this.data = (List) object; }else { List
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/72933.html
摘要:的子模塊我們先講層,因?yàn)槲蚁氚雅渲迷谶@里也說下。長這樣我們接下來看看每個(gè)子模塊如何編寫。二子模塊搭建子模塊搭建子模塊配置在將之前,我們先將的配置文件,使用一個(gè)全局的配置文件或,我們推薦使用文件。 現(xiàn)在,我們來搭建一個(gè)簡單的分模塊的SSM開發(fā)框架吧, 一: 分析并創(chuàng)建項(xiàng)目 先來簡單分析下我們項(xiàng)目的結(jié)構(gòu): 比如:我現(xiàn)在搭建一個(gè)管理系統(tǒng),我們把項(xiàng)目分為: tx-parent 頂級父項(xiàng)目(公...
摘要:開公眾號差不多兩年了,有不少原創(chuàng)教程,當(dāng)原創(chuàng)越來越多時(shí),大家搜索起來就很不方便,因此做了一個(gè)索引幫助大家快速找到需要的文章系列處理登錄請求前后端分離一使用完美處理權(quán)限問題前后端分離二使用完美處理權(quán)限問題前后端分離三中密碼加鹽與中異常統(tǒng)一處理 開公眾號差不多兩年了,有不少原創(chuàng)教程,當(dāng)原創(chuàng)越來越多時(shí),大家搜索起來就很不方便,因此做了一個(gè)索引幫助大家快速找到需要的文章! Spring Boo...
摘要:一項(xiàng)目簡介模仿抖音做的一個(gè)短視頻微信小程序,用搭建小程序后臺,用框架搭建短視頻后臺管理系統(tǒng),小程序后臺通過分布式監(jiān)聽節(jié)點(diǎn)自動(dòng)下載或刪除短視頻后臺管理系統(tǒng)上傳的視頻。 一、項(xiàng)目簡介 模仿抖音做的一個(gè)短視頻微信小程序,用SpringBoot搭建小程序后臺,用SSM框架搭建短視頻后臺管理系統(tǒng),小程序后臺通過分布式zookeeper監(jiān)聽節(jié)點(diǎn)自動(dòng)下載或刪除短視頻后臺管理系統(tǒng)上傳的視頻。 二、環(huán)境...
閱讀 2914·2021-11-15 18:02
閱讀 3806·2021-10-14 09:43
閱讀 3745·2021-09-08 10:41
閱讀 2526·2019-08-30 15:53
閱讀 1808·2019-08-30 14:14
閱讀 1950·2019-08-29 16:12
閱讀 3148·2019-08-29 14:03
閱讀 1283·2019-08-29 13:46