【Spring Boot】ORM系列之BeetlSql

1. 前言

BettlSql的官网:http://ibeetl.com/guide/#beetlsql

2. 引入

<dependency>
    <groupId>com.ibeetl</groupId>
    <artifactId>beetl-framework-starter</artifactId>
    <version>${ibeetl.version}</version>
</dependency>

3. 配置

3.1 application.yml

beetl:
  enabled: false
beetlsql:
  enabled: true
  sqlPath: /sql
  daoSuffix: Dao
  basePackage: com.xkcoding.orm.beetlsql.dao
  dbStyle: org.beetl.sql.core.db.MySqlStyle
  nameConversion: org.beetl.sql.core.UnderlinedNameConversion
beet-beetlsql:
  dev: true

Beetl拥有两个产品:Beetl模板引擎和BeetlSql持久层框架。
beetl.enabled=false 关闭Beetl模板引擎。
beetlsql.enabled=true 开启BeetlSql持久层框架。

beetlsql.sqlPath,默认为/sql, 作为存放sql文件的根目录,位于/resources/sql目录下。

beetlsql.daoSuffix 默认Dao,作为DAO接口的后缀。

beetlsql.basePackage 默认为com,此选项配置beetlsql.daoSuffix来自动扫描com包及其子包下的所有以Dao结尾的Mapper类。

beetlsql.dbStyle :数据库风格,默认是org.beetl.sql.core.db.MySqlStyle.对应不同的数据库,其他还有OracleStyle,PostgresStyle,SqlServerStyle,DB2SqlStyle,SQLiteStyle,H2Style

beetlsql.nameConversion: 默认是org.beetl.sql.core.UnderlinedNameConversion,能将下划线分割的数据库命名风格转化为java驼峰命名风格,还有常用的DefaultNameConversion,数据库命名完全和Java命名一直,以及JPA2NameConversion,兼容JPA命名

beetl-beetlsql.dev:默认是true,即向控制台输出执行时候的sql,参数,执行时间,以及执行的位置,每次修改sql文件的时候,自动检测sql文件修改.

3.2 BeetlConfig

@Configuration
public class BeetlConfig {

    /**
     * Beetl需要显示的配置数据源,方可启动项目,大坑,切记!
     */
    @Bean(name = "datasource")
    public DataSource getDataSource(Environment env){
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
        dataSource.setJdbcUrl(env.getProperty("spring.datasource.url"));
        dataSource.setUsername(env.getProperty("spring.datasource.username"));
        dataSource.setPassword(env.getProperty("spring.datasource.password"));
        return dataSource;
    }
}

4. 基础设施

4.1 Entity

import org.beetl.sql.core.annotatoin.Table;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "orm_user")
public class User implements Serializable {
    private static final long serialVersionUID = -1840831686851699943L;

    private Long id;//主键
    private String name;//用户名
    private String password;//加密后的密码
    private String salt;//加密使用的盐
    private String email;//邮箱
    private String phoneNumber;//手机号码
    private Integer status;//状态,-1:逻辑删除,0:禁用,1:启用
    private Date createTime;//创建时间
    private Date lastLoginTime;//上次登录时间
    private Date lastUpdateTime;//上次更新时间
}

4.2 DAO

import org.beetl.sql.core.mapper.BaseMapper;

@Component
public interface UserDao extends BaseMapper<User> {

}

5. 调用

5.1 基础CURD

//新增,第二个参数代表是否获取自增主键
userDao.insert(user, true);
//批量新增
userDao.insertBatch(users);
//删除
userDao.deleteById(id);
//更新
userDao.updateTemplateById(user);
//查询
userDao.single(id);
//查询全部
userDao.all();

5.2 分页

userDao.createLambdaQuery().page(currentPage, pageSize);

文章作者: 叶遮沉阳
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 叶遮沉阳 !
  目录