数据库配置
这里使用H2数据库作为例子,作为快速开始,避免安装数据库服务器,你也可以使用任意beetlsql支持的数据库
引入H2数据库
<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>1.4.200</version></dependency>
引入JDBC
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>
引入数据库连接池
BeetlSQL访问数据库不依赖数据库连接池,但有数据库连接池是大多数项目的标配。这里使用Druid
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.4</version></dependency>
引入lombok(非必须)
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.18</version><scope>provided</scope></dependency>
最后,需要准备一个sql脚本,以初始化H2数据库。保存如下sql到resources/db/schema.sql
DROP TABLE IF EXISTS `sys_user`;CREATE TABLE `sys_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`department_id` int(11) DEFAULT NULL,`create_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ;BEGIN;INSERT INTO `sys_user` VALUES (1, 'lijz', 1, NULL);INSERT INTO `sys_user` VALUES (2, 'lucy', 1, NULL);INSERT INTO `sys_user` VALUES (3, 'bear', 2, NULL);INSERT INTO `sys_user` VALUES (4, 'mike', 1, NULL);INSERT INTO `sys_user` VALUES (5, 'lisan', 1, NULL);INSERT INTO `sys_user` VALUES (6, 'xb', 1, NULL);INSERT INTO `sys_user` VALUES (7, 'duanwu', 2, NULL);INSERT INTO `sys_user` VALUES (8, 'fenh', 1, NULL);INSERT INTO `sys_user` VALUES (9, 'lj', 2, NULL);INSERT INTO `sys_user` VALUES (10, 'gshen', 1, NULL);INSERT INTO `sys_user` VALUES (11, 'lihui', 1, NULL);COMMIT;
此脚本也适合mysql执行
配置H2,datasource, beetlsql
spring:datasource:url: jdbc:h2:mem:dbtest;DB_CLOSE_ON_EXIT=FALSEusername: sapassword: sadriverClassName: org.h2.Driverh2:console:path: /h2enabled: true# 程序启动时初始化执行sql脚本spring.datasource.schema: classpath:db/h2.sql# beetlsql配置beetlsql:# sqlManager名称,多个sqlManager使用,隔开sqlManagers: sqlManager1sqlManager1:# 数据源名称ds: dataSource# mapper所在的包basePackage: com.example.demo.mapper# 将会扫描com.example.demo.mapper包下的以Mapper结尾的接口,为其自动生成代理类daoSuffix: Mapper# 是否是开发模式dev: true# sql文件编码sqlFileCharset: utf-8# 数据库styledbStyle: org.beetl.sql.core.db.H2Style
编写代码
新建一个POJO对象
package com.example.demo.entity;import lombok.Data;import org.beetl.sql.annotation.entity.AutoID;import org.beetl.sql.annotation.entity.Table;@Data@Table(name = "sys_user")public class User {@AutoIDprivate Integer id;private String name;private Integer departmentId;}
这里使用了lombok简化代码,如果没有引入lombok手动添加getter/setter方法即可
在mapper包下创建UserMapper
package com.example.demo.Mapper;import com.example.demo.entity.User;import org.beetl.sql.mapper.BaseMapper;public interface UserMapper extends BaseMapper<User> {}
在controller中使用
@RestController@RequestMapping("user")public class TestController {@AutowiredUserMapper userMapper;@RequestMapping("list")public String list() {List<User> list = userMapper.all();list.forEach(u -> {System.out.println(u);});return "ok";}}
查询成功,控制台日志如下:
┏━━━━━ Debug [user.$selectAll] ━━━┣ SQL: select * from sys_user┣ 参数: []┣ 位置: com.example.demo.controller.TestController.test(TestController.java:21)┣ 时间: 1ms┣ 结果: [11]┗━━━━━ Debug [user.$selectAll] ━━━User(id=1, name=lijz, departmentId=1)User(id=2, name=lucy, departmentId=1)User(id=3, name=bear, departmentId=2)User(id=4, name=mike, departmentId=1)User(id=5, name=lisan, departmentId=1)User(id=6, name=xb, departmentId=1)User(id=7, name=duanwu, departmentId=2)User(id=8, name=fenh, departmentId=1)User(id=9, name=lj, departmentId=2)User(id=10, name=gshen, departmentId=1)User(id=11, name=lihui, departmentId=1)
