1. 程式人生 > >springboot配置訪問sqlserver,mysql資料庫以及ssm的公共業務邏輯層抽取

springboot配置訪問sqlserver,mysql資料庫以及ssm的公共業務邏輯層抽取

最近喜歡用springboot,有時間就研究了一下,因為經常用sqlserver,在網上查了半天沒有什麼很好的配置,在抽取業務層的時候也出點問題,還好解決了

這是一個比較簡單的結構

先引入sqlserver和mysql的依賴,注意不要重複,這麼低階的錯誤我都不知道自己怎麼犯的

<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/sqljdbc4 -->
    <dependency>
      <groupId>com.microsoft.sqlserver</groupId>
      <artifactId>sqljdbc4</artifactId>
      <version>4.0</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>

這是sqlserver的連線配置

spring:
  datasource:
    url: jdbc:sqlserver://localhost:1433;DatabaseName=xxxxx
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    username: sa
    password: 123456
    initial-size: 1
    min-idle: 1
    max-active: 20
    test-on-borrow: true
    max-wait: 60000
    time-between-eviction-runs-millis: 60000
    min-evictable-idle-time-millis: 300000
    validation-query: SELECT 1 FROM DUAL
    test-While-Idle: true
    test-on-return: false
    pool-prepared-statements: false
    max-pool-prepared-statement-per-connection-size: 20
    filters: stat,wall,log4j,config

initial-size:指定啟動連線池時,初始建立的連線數量
min-idle:指定必須保持連線的最小值

max-active:指定連線池中最大的活躍連線數.

test-on-borrow:當從連線池借用連線時,是否測試該連線.

max-wait:指定連線池等待連線返回的最大等待時間,毫秒單位

time-between-eviction-runs-millis:指定空閒連線檢查、廢棄連線清理、空閒連線池大小調整之間的操作時間間隔

min-evictable-idle-time-millis:指定一個空閒連線最少空閒多久後可被清除.

validation-query:指定獲取連線時連線校驗的sql查詢語句.

test-While-Idle當連線空閒時,是否執行連線測試.

test-on-return:在連線歸還到連線池時是否測試該連線.

pool-prepared-statements:指定是否池化statements

其他的看demo

mysql連線配置,url是一行的我分開顯示的

url: jdbc:mysql://localhost:3306/bdshop?createDatabaseIfNotExist=true&useUnicode=true&useUnicode=true
	&characterEncoding=utf8&autoReconnect=true&verifyServerCertificate=false&useSSL=false
	&sessionVariables=sql_mode='NO_ENGINE_SUBSTITUTION'&jdbcCompliantTruncation=false
    driver-class: com.mysql.jdbc.Driver


在訪問資料庫時指定編碼方式是否使用userssl等等

抽取公共業務層:

這樣重用率會好很多,業務層在一塊,所有工具類在一塊分類顯示,這樣整體結構不冗雜

下面細說一下抽取業務層:

BaseMapper<T>

public interface BaseMapper<T> {
	int insert(int id);
}

BaseService<T>:繼承BaseMapper<T>

public interface BaseService<T> extends BaseMapper<T> { } }

BaseServiceImp<T>實現BaseService<T>,定義一個返回mapper介面的抽象方法等會有用

public abstract class BaseServiceImp<T> implements BaseService<T> {
	protected abstract   BaseMapper<T> getMapper();
	public int insert(int id){
		return getMapper().insert(id);
	}
}

下面看一下模組層mapper繼承公共BaseMapper,傳入請求引數

public interface AMapper extends BaseMapper<User> {
	public User login(User user);
}

service繼承公共BaseService,傳入請求引數,相當於繼承了BaseMapper

public interface AService extends BaseService<User> {
	public User login(User user);
}

imp繼承BaseServiceImp,實現模組Service,向公共層傳入引數,注意加上@Service,公共可以不加
BaseServiceImp沒有實現getMapper() 方法,在這裡實現,return指定模組的aMapper,這樣就相當於是aMapper呼叫insert了
這個地方我一開始沒注意,呼叫insert時在BaseServiceImp能傳入引數,但是請求不了BaseMapper去查詢資料庫,一直報null

@Transactional
@Service
public class AServiceImp extends BaseServiceImp<User> implements AService {
	@Resource
	private AMapper aMapper;
	@Override
	protected BaseMapper<User> getMapper(){
		return this.aMapper;
	}
	
	@Override
	public User login(User user) {
		System.out.println("imp--"+user);
		user= aMapper.login(user);
		return user;
	}
}

AMapper.xml指定AMapper.java
這樣controller不論呼叫login還是insert都可以進行查詢了,清晰的結構還是蠻重要的
對於記錄也是心得沒多久,有不對地方多多指導,不好的地方多多包涵

碼雲地址:https://gitee.com/tickingbomb/tickingbomb/tree/mtgg/

相關推薦

springboot配置訪問sqlservermysql資料庫以及ssm公共業務邏輯抽取

最近喜歡用springboot,有時間就研究了一下,因為經常用sqlserver,在網上查了半天沒有什麼很好的配置,在抽取業務層的時候也出點問題,還好解決了 這是一個比較簡單的結構 先引入sqlserver和mysql的依賴,注意不要重複,這麼低階的錯誤我都不知道

多臺伺服器之間如何讓sqlservermysql資料庫進行資料同步?

伺服器儲存視訊,頻寬不夠用,想用多臺伺服器,如何讓所有伺服器之間視訊實時同步,可以用什麼軟體!當企業租用伺服器,但是在資料同步的時候,又有著嚴格的要求,要求資料達到一致,在科技發達的今天,這又該如何做到了?下面天下資料為大家介紹多臺伺服器之間讓資料同步的方法! 1、採用高可用sureHA軟體映象型,一臺

ABP框架使用Mysql資料庫以及基於SQLServer建立Mysql資料庫的架構和資料

ABP預設的資料庫是SQLServer,不過ABP框架底層是EF框架,因此也是很容易支援其他型別的資料庫的,本篇隨筆介紹在ABP框架使用Mysql資料庫,以及基於SQLServer建立MySql資料庫的架構和資料的處理。 如果需要其他方式資料庫的支援,那麼需要引入相應的支援程式集。Nuget中安裝MySql相

SpringBoot與MyBatis整合底層資料庫mysql的使用示例

 專案下載連結:https://github.com/DFX339/bootdemo.git   新建maven專案,web專案,專案名為 bootdemo   專案結構目錄如下:還有個pom.xml檔案沒有在截圖裡面   專案需要編寫的檔案主

17 win7 sp1 x64/VS2015下配置creo4.0二次開發環境——呼叫了眾多開源庫(ceres-solverPCL1.8.0office 2016COM介面MySql資料庫等)

0 引言 本次開發環境的配置是在綜合考慮了開源庫的版本、VS版本以及CREO4.0的版本,同時針對甲方需求選擇了win7 sp1 x64系統。 配置的過程中遇到了形形色色的問題,但是一一解決了。通過這一個帖子,希望總結環境配置的經驗,為以後的專案開發提供借鑑。 1 VS2015 在win7 sp1 x64

Hibernate 環境 配置 對映資料庫 SQL server Mysql 資料庫 測試無誤

最近要消化的知識有點多,多以特地將筆記寫道 部落格中,方便檢視 需要到的hibernate jar 包 ,大家可以自行到官網下載 Hibernate 中 配置 Sqlserver 資料庫 <?xml version="1.0" encoding=

linux下mysql資料庫的忘記密碼檢視使用者以及修改使用者資訊

linux下,mysql資料庫的忘記密碼,檢視使用者,以及修改使用者資訊       剛好遇到的,也是自己不熟悉的部分,因此查了一些資料,大概把這幾個給總結一下。 一、資料庫忘記密碼 1、如果是root使用者忘記密碼的話,那就沒

分享幾本比較好的pdf書籍包括oracle資料庫mysql資料庫C語言程式設計java程式設計以及linux作業系統等

1.個人認為最好的oracle資料庫學習書籍,找了很久,發現內容最全講解最清晰《Oracle PL/SQL程式設計》上下 連結:https://pan.baidu.com/s/1VxvbW070_-KEFKEwY0iFCg  提取碼:rm1e  2.《linux系統程式設計

SpringBoot配置多資料來源(MySQL+SQLServer

SpringBoot 版本 1.5.13.RELEASE,以下maven依賴中包含jpa、web、mysql驅動、sqlserver驅動、測試模組。(按需新增) <parent> <groupId>org.springframework.

spring日誌配置分別使用springboot自帶日誌logbak日誌以及log4j2日誌

Springboot日誌配置: Springboot日誌配置分別可以分為自帶的日誌,醫用第三方日誌; 以下分別下介紹springboot自帶日誌配置,引用logback,以及log4j2日誌。 1、 預設配置檔案配置(不推薦使用):因為不夠靈活 配置方式比較簡單:在application.p

在專案中遷移MS SQLServerMysql資料庫實現MySQL資料庫的快速整合

在開發專案的時候,往往碰到的不同的需求情況,相容不同型別的資料庫是我們專案以不變應萬變的舉措之一,在底層能夠相容多種資料庫會使得我們開發不同型別的專案得心應手,如果配合快速的框架支援,那更是錦上添花的舉措。我開發的專案或者框架,採用了微軟企業庫Enterprise Library的模組,傾向於支援多種資料庫,

springboot配置多資料來源註解操作資料庫

最近新搭建了一個專案,需要去不同的資料庫中查詢資料,需要多個數據源,在網上搜索了下,基本上實現都很複雜,下面我自己實現了一個很簡單的配置方法。 1、原來我們都是在application.yml檔案中配置資料來源,現在不需要在application.yml檔案中配置了。   &n

文件互傳用戶配置文件和密碼配置文件用戶以及用戶組管理

不同的 ssl 註釋 cal ger 生命周期 remove 安裝 aaa 與windows互傳文件如果我們要互傳文件,先要安裝一個工具,lrzsz。rz是從windiws中下載文件到linux,sz是從linux中上傳文件到windows的。 linux只一個多用戶的操作

mac下的用idea配置jsp+tomcat連線mysql資料庫的環境

第一步 這裡假設IDEA和tomcat都以配置完成,僅差連線資料庫。 去這裡下載連線Mysql所需要的驅動程式mysql-connector-java-5.1.47-bin.jar。 第二步 下載完成後解壓獲取 並把它放在和tomcat伺服器的lib同一個資料夾下

springboot 配置ehcache快取通過註解定製多租戶(multiTenantId)生成快取的key並且實現註解按照tenantId清除快取,tanant之間快取互相不影響

調研背景     本公司有一項功能需求,由於查詢的資料太多會導致訪問時間超優化API介面,但是這不是長久之計,便決定引入快取,但是此 快取能夠實現按照不同租戶的ID號碼在同一個cacheName中去生成能識別租戶的key,而且在使用cacheEvict時候

外網訪問內網MySQL資料庫

外網訪問內網MySQL資料庫 本地安裝了MySQL資料庫,只能在區域網內訪問,怎樣從外網也能訪問本地MySQL資料庫? 本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝並啟動MySQL資料庫 預設安裝的MySQL資料庫埠是3306。 2. 實現步驟 2.1 下載並解壓holer軟體包

全國省市區資訊mysql資料庫記錄

-- 1、之前專案中需要全國的省市區資料,在網上找了很多,發現數據要麼不全,要麼就是過時了。   -- 2、然後發現高德地圖有這類的api可以免費使用。   -- 3、高德地圖‘行政區域查詢’API: 

如何從公網訪問內網MySQL資料庫

公網訪問內網MySQL資料庫 本地安裝了MySQL資料庫,只能在區域網內訪問,怎樣從公網也能訪問本地MySQL資料庫? 本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝並啟動MySQL資料庫 預設安裝的MySQL資料庫埠是3306。 2. 實現步驟 2.1

配置phpmyadmin連線遠端 MySQL資料庫

1、phpmyadmin程式所在伺服器:192.168.1.1,訪問地址為:http://192.168.1.1/phpmyadmin 2、MySQL資料庫所在伺服器:192.168.1.2,已經允許資料庫外鏈,MySQL資料庫使用者名稱:admin 密碼:123456 3、現在要通過http://

PHP當中如何使用Wampserver連線到Mysql資料庫以及怎樣使用

3個回答 #各抒己見# 老人向兒子索要帶孫子費,老人有照看孫輩的義務嗎? 最佳答案 程順偉  來自知道合夥人認證行家 2016-02-05 wampserver安裝好後,在瀏覽器中訪問,localhost/phpmyadmin/,登入你當初設定的