前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot 集成 JFinal的ActiveRecordPlugin 实现轻量级的CURD

SpringBoot 集成 JFinal的ActiveRecordPlugin 实现轻量级的CURD

作者头像
飞奔去旅行
发布2021-01-21 10:09:52
1.5K0
发布2021-01-21 10:09:52
举报
文章被收录于专栏:智慧协同

官方文档传送:ActiveRecord 概述

首先引入以下依赖

代码语言:javascript
复制
<!--实现jfinal activerecord-->
<dependency>
    <groupId>com.jfinal</groupId>
    <artifactId>activerecord</artifactId>
    <version>4.9.06</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.4</version>
</dependency>

增加一个配置类(Kotlin实现代码,Java同理)

代码语言:javascript
复制
/**
 * 集成 JFinal 的 ActiveRecordPlugin 实现轻量级db操作
 */
@Configuration
class JActiveRecordConfig {
    private val logger = LoggerFactory.getLogger(JActiveRecordConfig::class.java)

    @Value(“\${spring.datasource.business.jdbc-url}”)
    private lateinit var jdbcUrl: String

    @Value(“\${spring.datasource.business.username}”)
    private lateinit var username: String

    @Value(“\${spring.datasource.business.password}”)
    private lateinit var password: String

    @Value(“\${spring.datasource.business.driver-class-name}”)
    private lateinit var driverClassName: String

    @Bean
    fun initActiveRecordPlugin(): ActiveRecordPlugin {
        // 配置druid数据库连接池插件
        val druidPlugin = DruidPlugin(jdbcUrl, username, password, driverClassName)

        // 加强数据库安全
        val wallFilter = WallFilter()
        wallFilter.dbType = “mysql”
        druidPlugin.addFilter(wallFilter)
        druidPlugin.start()

        // 配置ActiveRecord插件
        val arp = ActiveRecordPlugin(druidPlugin)
        arp.setTransactionLevel(Connection.TRANSACTION_READ_COMMITTED)
        arp.setShowSql(true)
        arp.devMode = true

        // 所有映射在 MappingKit 中自动化搞定
        _MappingKit.mapping(arp)
        
        // 与 jfinal web 环境唯一的不同是要手动调用一次相关插件的start()方法
        arp.start()
        logger.info(“**** JFinal Active Record Init complete! ****”)
        return arp
    }
}

_MappingKit 代码如下:

代码语言:javascript
复制
class _MappingKit {
    companion object{
        fun mapping(arp: ActiveRecordPlugin) {
            arp.addMapping(JHolder.TABLE_NAME, JHolder::class.java)
        }
    }
}

Model 的定义如下:

代码语言:javascript
复制
class JHolder : Model<JHolder>() {
    companion object {
        const val TABLE_NAME = “base_holder”
        val dao = JHolder().dao()
    }
}

至此,集成已经完成,可以直接在项目中使用了!

以下是摘抄自官方文档中的代码示例:

代码语言:javascript
复制
// 创建name属性为James,age属性为25的User对象并添加到数据库
new User().set(“name”, “James”).set(“age”, 25).save();
 
// 删除id值为25的User
User.dao.deleteById(25);
 
// 查询id值为25的User将其name属性改为James并更新到数据库
User.dao.findById(25).set(“name”, “James”).update();
 
// 查询id值为25的user, 且仅仅取name与age两个字段的值
User user = User.dao.findByIdLoadColumns(25, “name, age”);
 
// 获取user的name属性
String userName = user.getStr(“name”);
 
// 获取user的age属性
Integer userAge = user.getInt(“age”);
 
// 查询所有年龄大于18岁的user
List<User> users = User.dao.find(“select * from user where age>18”);
 
// 分页查询年龄大于18的user,当前页号为1,每页10个user
Page<User> userPage = User.dao.paginate(1, 10, “select *”, “from user where age > ?”, 18);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先引入以下依赖
  • 增加一个配置类(Kotlin实现代码,Java同理)
  • _MappingKit 代码如下:
  • Model 的定义如下:
  • 以下是摘抄自官方文档中的代码示例:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档