BeetlSQL3.0.0如何轻松集成Spring

这篇文章主要为大家展示了“BeetlSQL3.0.0如何轻松集成Spring”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“BeetlSQL3.0.0如何轻松集成Spring”这篇文章吧。

10多年的准格尔网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整准格尔建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“准格尔网站设计”,“准格尔网站推广”以来,每个客户项目都认真落实执行。

单数据源

首先引入Starter,目前版本是3.0.0-M5


	com.ibeetl
	sql-springboot-starter
	${version}

然后编辑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
  • 第一行表示需要配置一个SQLManager实例,bean名称为sqlManger1

  • 第二行表示使用名称ds1的数据源

  • 第三行可选,表示mapper类在org.beetl.sql.springboot.simple下

  • 第四行表示数据库是MySql

其他可选的配置如下

beetlsql.sqlManager1.daoSuffix=Mapper
beetlsql.sqlManager1.nameConversion=org.beetl.sql.core.UnderlinedNameConversion
beetlsql.sqlManager1.sqlPath=sql

分别表示Mapper的类的后缀是Mapper,使用UnderlinedNameConversion作为默认的列名和属性名的转化,以及SQL文件放到classpath的sql下

编写java类,配置好ds1数据源

@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在多库系统里,如果多库是一个业务库,则使用一个SQLManager管理,比如主从,或者多租户,以主从库为例子,SpringBoot的配置如下(多租户例子参考工程源码实例)

beetlsql = sqlManager1
beetlsql.sqlManager1.ds=masterDs,slaveDs1,slaveDs2

主要就是ds会有多个数据源配置,第一个为主库,后面为从库,如果事务是只读事务且是查询操作,则BeetlSQL将使用从库操作

@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;
    }

动态SQLManager

如果系统有多个业务库,或者有传统数据库+SQL查询引擎+物联网时序库,可以分别建立多个SQLManager,比如

beetlsql = sqlManager1,sqlManager2
beetlsql.sqlManager1.ds = ds1
beetlsql.sqlManager2.ds = queryDs

BeetlSQL也支持一个SQLManager,管理多个业务库,内部实现是通过ConditionalSQLManager来实现的,动态决定使用哪个SQLManager 这时候只需要简单配置即可

beetlsql = sqlManager
beetlsql.sqlManager.dynamic=sqlManager1,sqlManager2
beetlsql.sqlManager.basePackage=org.beetl.sql.springboot.dynamic
beetlsql.sqlManager1.ds=ds1
beetlsql.sqlManager2.ds=ds2

第一行申明了了一个SQLMananger实例,名称为sqlManager 第二行申明此SQLManager包含多个SQLManager,第一个为默认 后面三行同前所述。 当申明dynamic后,sqlManager的实现类是ConditionalSQLManager,因此使用哪个SQLManager取决于操作的实体上的注解@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;

}

测试代码 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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


标题名称:BeetlSQL3.0.0如何轻松集成Spring
标题来源:http://pwwzsj.com/article/gdpdje.html