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);