springboot整合BeetSQL

r囧r小猫 2023-10-04 21:03 17阅读 0赞

一、导入依赖

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-web</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.projectlombok</groupId>
  8. <artifactId>lombok</artifactId>
  9. <optional>true</optional>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-test</artifactId>
  14. <scope>test</scope>
  15. </dependency>
  16. <dependency>
  17. <groupId>com.ibeetl</groupId>
  18. <artifactId>sql-springboot-starter</artifactId>
  19. <version>3.12.0-RELEASE</version>
  20. </dependency>
  21. <dependency>
  22. <groupId>mysql</groupId>
  23. <artifactId>mysql-connector-java</artifactId>
  24. <scope>runtime</scope>
  25. </dependency>
  26. <dependency>
  27. <groupId>com.zaxxer</groupId>
  28. <artifactId>HikariCP</artifactId>
  29. <version>3.2.0</version>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot</artifactId>
  34. <version>2.6.0</version>
  35. <scope>test</scope>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.springframework.boot</groupId>
  39. <artifactId>spring-boot</artifactId>
  40. <version>2.6.0</version>
  41. </dependency>
  42. <dependency>
  43. <groupId>org.springframework.boot</groupId>
  44. <artifactId>spring-boot</artifactId>
  45. </dependency>
  46. </dependencies>

#

二、书写配置

  1. spring.datasource.url=jdbc:mysql://localhost:3306/study
  2. spring.datasource.username=root
  3. spring.datasource.password=000000
  4. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  5. beetlsql.sqlManagers=sqlManager1
  6. beetlsql.sqlManager1.ds=datasource
  7. beetlsql.sqlManager1.basePackage=org.beetl.sql.springboot.simple
  8. beetlsql.sqlManager1.dbStyle=org.beetl.sql.core.db.MySqlStyle

#

三、添加配置类

  1. package com.hu.config;
  2. import com.zaxxer.hikari.HikariDataSource;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.core.env.Environment;
  6. import javax.sql.DataSource;
  7. @Configuration
  8. public class SimpleDataSourceConfig {
  9. @Bean(name = "datasource")
  10. public DataSource datasource(Environment env) {
  11. HikariDataSource ds = new HikariDataSource();
  12. ds.setJdbcUrl(env.getProperty("spring.datasource.url"));
  13. ds.setUsername(env.getProperty("spring.datasource.username"));
  14. ds.setPassword(env.getProperty("spring.datasource.password"));
  15. ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
  16. return ds;
  17. }
  18. }

#

四、书写sql

  1. ET NAMES utf8mb4;
  2. SET FOREIGN_KEY_CHECKS = 0;
  3. -- ----------------------------
  4. -- Table structure for user
  5. -- ----------------------------
  6. DROP TABLE IF EXISTS `user`;
  7. CREATE TABLE `user` (
  8. `id` int(255) NOT NULL AUTO_INCREMENT,
  9. `age` int(11) NULL DEFAULT NULL,
  10. `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  11. `department_id` int(255) NULL DEFAULT NULL,
  12. PRIMARY KEY (`id`) USING BTREE
  13. ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
  14. -- ----------------------------
  15. -- Records of user
  16. -- ----------------------------
  17. INSERT INTO `user` VALUES (1, 23, '修改name', 1001);
  18. INSERT INTO `user` VALUES (2, 22, '李大本事', 1002);
  19. INSERT INTO `user` VALUES (3, 24, '麻子', 1003);
  20. INSERT INTO `user` VALUES (4, 34, '李四', 1005);
  21. INSERT INTO `user` VALUES (5, 19, '19', 1005);
  22. INSERT INTO `user` VALUES (6, 19, '王五', 1005);
  23. SET FOREIGN_KEY_CHECKS = 1;

五、编写实体类

  1. package com.hu.entry;
  2. import lombok.Data;
  3. import org.beetl.sql.annotation.entity.Column;
  4. import org.beetl.sql.annotation.entity.Table;
  5. @Data
  6. @Table(name = "user")
  7. public class User {
  8. private Integer id;
  9. private Integer age;
  10. private String name;
  11. @Column("department_id") // @Column 映射到表字段
  12. private Integer departmentId;
  13. }

六、书写mapper

  1. package com.hu.mapper;
  2. import com.hu.entry.User;
  3. import org.beetl.sql.mapper.BaseMapper;
  4. import org.beetl.sql.mapper.annotation.*;
  5. public interface UserMapper extends BaseMapper<User> {
  6. @Sql("select * from user where id=?")
  7. @Select
  8. User queryUserById(Integer id);
  9. @Sql("update user set name=? where id=?")
  10. @Update
  11. Integer updateName(String name,Integer id);
  12. @Template("select * from user where id=#{id}")
  13. User getUserById(@Param("id") Integer id);
  14. }

#

七、测试

  1. package com.hu;
  2. import com.hu.entry.User;
  3. import com.hu.mapper.UserMapper;
  4. import org.beetl.sql.core.SQLManager;
  5. import org.beetl.sql.core.SQLReady;
  6. import org.beetl.sql.core.SqlId;
  7. import org.beetl.sql.core.query.LambdaQuery;
  8. import org.junit.jupiter.api.Test;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.boot.test.context.SpringBootTest;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. @SpringBootTest
  14. class TestqApplicationTests {
  15. @Autowired
  16. private SQLManager sqlManager;
  17. @Test
  18. void contextLoads(){
  19. LambdaQuery<User> query = sqlManager.lambdaQuery(User.class);
  20. List<User> listUser = query.andEq(User::getId, 2).select();
  21. System.out.println(listUser.toString());
  22. }
  23. @Test
  24. void unique(){
  25. User user = sqlManager.unique(User.class, 1);
  26. System.out.println(user);
  27. }
  28. @Test
  29. void update(){
  30. User user = sqlManager.unique(User.class, 2);
  31. user.setName("李大本事");
  32. int i = sqlManager.updateById(user);
  33. System.out.println(i);
  34. }
  35. @Test
  36. void selectTemplate(){
  37. User user = new User();
  38. user.setId(2);
  39. for (User user1 : sqlManager.template(user)) {
  40. System.out.println(user1);
  41. }
  42. }
  43. @Test
  44. void sqlReadyTest(){
  45. String sql = "select * from user where id = ?";
  46. Integer id = 1;
  47. SQLReady sqlReady = new SQLReady(sql, new Object[]{id});
  48. List<User> userList = sqlManager.execute(sqlReady, User.class);
  49. for (User user : userList) {
  50. System.out.println(user);
  51. }
  52. }
  53. @Test
  54. void executeSQLTest(){
  55. String sql = "select * from user where id = #{id} and name = #{name}";
  56. HashMap map = new HashMap();
  57. map.put("id",1);
  58. map.put("name","张三");
  59. for (User user : sqlManager.execute(sql, User.class, map)) {
  60. System.out.println(user);
  61. }
  62. }
  63. @Test
  64. void lambdaQuery(){
  65. LambdaQuery<User> lambdaQuery = sqlManager.lambdaQuery(User.class);
  66. for (User user : lambdaQuery.andEq("id", 1).andIsNotNull("name").select()) {
  67. System.out.println(user);
  68. }
  69. }
  70. @Test
  71. void mapperMethod(){
  72. UserMapper mapper = sqlManager.getMapper(UserMapper.class);
  73. User unique = mapper.unique(1);
  74. System.out.println(unique);
  75. }
  76. @Test
  77. void mapperInsert(){
  78. UserMapper mapper = sqlManager.getMapper(UserMapper.class);
  79. User user = new User();
  80. user.setName("王五");
  81. user.setAge(19);
  82. user.setDepartmentId(1005);
  83. mapper.insert(user);
  84. }
  85. @Test
  86. void mapperQueryUserById(){
  87. UserMapper mapper = sqlManager.getMapper(UserMapper.class);
  88. User user = mapper.queryUserById(1);
  89. System.out.println(user);
  90. }
  91. @Test
  92. public void mapperUpdateName(){
  93. UserMapper mapper = sqlManager.getMapper(UserMapper.class);
  94. Integer i = mapper.updateName("修改name",1);
  95. System.out.println(i);
  96. }
  97. @Test
  98. public void mapperGetUserById(){
  99. UserMapper mapper = sqlManager.getMapper(UserMapper.class);
  100. User user = mapper.getUserById(1);
  101. System.out.println(user);
  102. }
  103. @Test
  104. public void LiekQueryByMd(){
  105. SqlId sqlId = SqlId.of("user", "select");
  106. HashMap map = new HashMap();
  107. map.put("name","%李%");
  108. for (User user : sqlManager.select(sqlId, User.class, map)) {
  109. System.out.println(user);
  110. }
  111. }
  112. }

注意:在resources 创建 sql文件夹 在sql文件夹下创建user.md。

  1. select
  2. ===
  3. ```sql
  4. select * from user u where 1=1
  5. AND name like #{name}
  6. order BY u.id desc
  7. ```

发表评论

表情:
评论列表 (有 0 条评论,17人围观)

还没有评论,来说两句吧...

相关阅读