這篇文章主要為大家展示了“BeetlSQL3.0.0如何輕松集成Spring”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“BeetlSQL3.0.0如何輕松集成Spring”這篇文章吧。

10多年的準(zhǔn)格爾網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整準(zhǔn)格爾建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“準(zhǔn)格爾網(wǎng)站設(shè)計(jì)”,“準(zhǔn)格爾網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
首先引入Starter,目前版本是3.0.0-M5
<dependency>
	<groupId>com.ibeetl</groupId>
	<artifactId>sql-springboot-starter</artifactId>
	<version>${version}</version>
</dependency>然后編輯Spring的配置文件application.properties ,如下(參考BeetlSqlConfig)
beetlsql = sqlManager1 beetlsql.sqlManager1.ds=ds1 beetlsql.sqlManager1.basePackage=org.beetl.sql.springboot.simple beetlsql.sqlManager1.dbStyle=org.beetl.sql.core.db.MySQLStyle
第一行表示需要配置一個(gè)SQLManager實(shí)例,bean名稱為sqlManger1
第二行表示使用名稱ds1的數(shù)據(jù)源
第三行可選,表示mapper類在org.beetl.sql.springboot.simple下
第四行表示數(shù)據(jù)庫(kù)是MySql
其他可選的配置如下
beetlsql.sqlManager1.daoSuffix=Mapper beetlsql.sqlManager1.nameConversion=org.beetl.sql.core.UnderlinedNameConversion beetlsql.sqlManager1.sqlPath=sql
分別表示Mapper的類的后綴是Mapper,使用UnderlinedNameConversion作為默認(rèn)的列名和屬性名的轉(zhuǎn)化,以及SQL文件放到classpath的sql下
編寫java類,配置好ds1數(shù)據(jù)源
@Bean(name = "ds1")
    public DataSource datasource(Environment env) {
        HikariDataSource ds = new HikariDataSource();
        ds.setJdbcUrl(env.getProperty("spring.datasource.url"));
        ds.setUsername(env.getProperty("spring.datasource.username"));
        ds.setPassword(env.getProperty("spring.datasource.password"));
        ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        return ds;
    }然后,你就可以在代碼中使用BeetlSQL,比如SimpleTest
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SimpleApplication.class)
@Transactional
public class SimpleTest {
    @Autowired
    SQLManager sqlManager;
    @Autowired
    SimpleUserInfoMapper userInfoMapper;
    @Test
    public void test(){
        sqlManager.single(UserInfo.class,1);
        userInfoMapper.single(1);
    }
}BeetlSQL在多庫(kù)系統(tǒng)里,如果多庫(kù)是一個(gè)業(yè)務(wù)庫(kù),則使用一個(gè)SQLManager管理,比如主從,或者多租戶,以主從庫(kù)為例子,SpringBoot的配置如下(多租戶例子參考工程源碼實(shí)例)
beetlsql = sqlManager1 beetlsql.sqlManager1.ds=masterDs,slaveDs1,slaveDs2
主要就是ds會(huì)有多個(gè)數(shù)據(jù)源配置,第一個(gè)為主庫(kù),后面為從庫(kù),如果事務(wù)是只讀事務(wù)且是查詢操作,則BeetlSQL將使用從庫(kù)操作
@Bean(name = "masterDs")
    public DataSource master(Environment env) {
        HikariDataSource ds = new HikariDataSource();
        ds.setJdbcUrl(env.getProperty("spring.datasource.url"));
        ds.setUsername(env.getProperty("spring.datasource.username"));
        ds.setPassword(env.getProperty("spring.datasource.password"));
        ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        return ds;
    }
    @Bean(name = "slaveDs1")
    public DataSource slaveDs1(Environment env) {
       // 省略
        return ds;
    }
    @Bean(name = "slaveDs2")
    public DataSource slaveDs2(Environment env) {
     // 省略
        return ds;
    }如果系統(tǒng)有多個(gè)業(yè)務(wù)庫(kù),或者有傳統(tǒng)數(shù)據(jù)庫(kù)+SQL查詢引擎+物聯(lián)網(wǎng)時(shí)序庫(kù),可以分別建立多個(gè)SQLManager,比如
beetlsql = sqlManager1,sqlManager2 beetlsql.sqlManager1.ds = ds1 beetlsql.sqlManager2.ds = queryDs
BeetlSQL也支持一個(gè)SQLManager,管理多個(gè)業(yè)務(wù)庫(kù),內(nèi)部實(shí)現(xiàn)是通過ConditionalSQLManager來實(shí)現(xiàn)的,動(dòng)態(tài)決定使用哪個(gè)SQLManager 這時(shí)候只需要簡(jiǎn)單配置即可
beetlsql = sqlManager beetlsql.sqlManager.dynamic=sqlManager1,sqlManager2 beetlsql.sqlManager.basePackage=org.beetl.sql.springboot.dynamic beetlsql.sqlManager1.ds=ds1 beetlsql.sqlManager2.ds=ds2
第一行申明了了一個(gè)SQLMananger實(shí)例,名稱為sqlManager 第二行申明此SQLManager包含多個(gè)SQLManager,第一個(gè)為默認(rèn) 后面三行同前所述。 當(dāng)申明dynamic后,sqlManager的實(shí)現(xiàn)類是ConditionalSQLManager,因此使用哪個(gè)SQLManager取決于操作的實(shí)體上的注解@TargetSQLManager(此策略可以修改)`
@Table(name="user")
@TargetSQLManager("sqlManager1")
@Data
public class UserInfoInDs1 {
    @AssignID
    private Integer id;
    private String name;
}@Table(name="user")
@TargetSQLManager("sqlManager2")
@Data
public class UserInfoInDs2 {
    @AssignID
    private Integer id;
    private String name;
}測(cè)試代碼 DynamicTest
public class DynamicTest {
    @Autowired
    @Qualifier("sqlManager")
    SQLManager sqlManager;
    
    @Test
    public void test(){
 
        sqlManager.single(UserInfoInDs1.class,1);
        sqlManager.single(UserInfoInDs2.class,1);
    
    }
}以上是“BeetlSQL3.0.0如何輕松集成Spring”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
                本文題目:BeetlSQL3.0.0如何輕松集成Spring
                
                文章轉(zhuǎn)載:http://chinadenli.net/article24/gdpdje.html
            
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、響應(yīng)式網(wǎng)站、網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、商城網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)