sqlkit用法问题

新建一个sqlkit时,需要指定configname,设置为默认main

activeRecord.addSqlTemplate("sql/edu.sql");
sqlkit = new SqlKit(DbKit.MAIN_CONFIG_NAME, true);

然后直接使用sqlkit.getSQL() 方法报空指针异常,获取失败

再次指定sql文件目录后,并解析,才可以。是我用法有问题吗?@jfinal

完成代码如下:

dp = new DruidPlugin(URL, USERNAME,PASSWORD);
dp.set(10, 5, 40);
dp.start();

activeRecord = new ActiveRecordPlugin(dp);
activeRecord.setDialect(new MysqlDialect())
        .setDevMode(true)
        .setShowSql(true) //是否打印sql语句
;
activeRecord.addSqlTemplate("sql/edu.sql");

sqlkit = new SqlKit(DbKit.MAIN_CONFIG_NAME, true);
sqlkit.addSqlTemplate("sql/edu.sql");
sqlkit.parseSqlTemplate();

调用

String sql =  sqlkit.getSql("base.dw_school_term");

成功获取值。

评论区

JFinal

2025-06-30 18:26

SqlKit 是 ActiveRecordPlugin 自己内部维护的,不需要干预

添加 sql 使用 : activeRecordPlugin.addSqlTemplate(...)

杜福忠

2025-06-30 23:30

https://jfinal.com/doc/5-13
常见业务不需要直接使用SqlKit。
正确姿势:
String sql = Db.getSql("findGirl");
Db.find(sql, 16, 23);

Db.template("findGirl", 18, 50).find();

PS:真有特殊业务要操作SqlKit的话,正确姿势是:
sqlkit = activeRecord.getConfig().getSqlKit();

大白熊

2025-07-01 11:13

@杜福忠 @JFinal 谢谢,Db.getSql("findGirl")更合适,赞!我们是要通过select语句创建临时表,自动生成create语句,getSql后其中有占位符?不能直接用,替换成''后可以了。本来想通过sqlkit获取最终执行的sql语句----参数已经被填充的sql,发现也不行。

热门反馈

扫码入社