jfinal启动时读取sql配置文件

想在jfinal启动时读取sql配置文件,不是键值关系,里面只是单纯的sql语句,请问大体写法是什么样的


DruidPlugin druid = new DruidPlugin(getProperty("jdbc.url"), getProperty("jdbc.username"),

getProperty("jdbc.password"));

ActiveRecordPlugin arp1 = new ActiveRecordPlugin("initMain", druid);


druid.start();

arp1.start();

// 创建表

String sql =“直接读取sql文件的内容出来?是的话是怎么全部读取”;

Db.update(sql);

// 关闭这个插件

arp1.stop();

druid.stop();


评论区

JFinal

2019-08-16 10:22

你的用法是对的, sql 从文件中读出来使用普通的 java API 即可

假定你的 sql 是按行存放的,可以通过 BufferedReader 按行读取,
String sql = reader.readLine();

然后 Db.update(sql);

信阳

2019-08-16 10:37

好的,谢谢

信阳

2019-08-16 10:50

CREATE TABLE IF NOT EXISTS `student` (
`s_id` varchar(40) NOT NULL,
`s_name` varchar(255) default NULL,
`s_age` varchar(255) default NULL,
`s_msg` varchar(255) default NULL,
PRIMARY KEY (`s_id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `student2` (
`s_id` varchar(40) NOT NULL,
`s_name` varchar(255) default NULL,
`s_age` varchar(255) default NULL,
`s_msg` varchar(255) default NULL,
PRIMARY KEY (`s_id`))
ENGINE=InnoDB DEFAULT CHARSET=utf8;
我的文件是放着两个语句,读出来一个String,不能直接update,直接一个一个语句update?

信阳

2019-08-16 11:17

@JFinal 如果文件是我上述情况,请问如何处理?

JFinal

2019-08-16 12:03

先尝试这两个 sql 内容一起拥到 Db.update(...) 中去,因为你这个 sql 是有分号结尾的,或许一次性可以执行多条

如果不成功,则按分号解析出一条条的 sql 去执行,这些显然都与 jfinal 无关了

杜福忠

2019-08-16 12:14

我是 for(String sql : sqlStr.split(";\\n")) Db.update(sql); 的

chcode

2019-12-30 12:38

@杜福忠 @JFinal jdbc url 后加上参数&allowMultiQueries=true可以解决不用切分每条sql还容易出错

杜福忠

2019-12-30 13:33

@chcode 昂,学习了,当时开发的时候,试了下没成,就以为不行了,没深研究

热门反馈

扫码入社