jfinal update问题

请问 jfinal  


int update(Config config, Connection conn, String sql, Object... paras) throws SQLException {

PreparedStatement pst = conn.prepareStatement(sql);

config.dialect.fillStatement(pst, paras);

int result = pst.executeUpdate();

DbKit.close(pst);

return result;

}

为什么到了int result = pst.executeUpdate();  这一步 数据库已经更新成功了,但是就是没有继续走下去,线程到这个地步就停了

评论区

程序小菜鸟

2017-09-11 10:43

而且下面还有代码就不走了

JFinal

2017-09-11 11:32

按一下 F8 继承走完

程序小菜鸟

2017-09-11 11:43

@JFinal 我调试的时候 它跑到这一步 int result = pst.executeUpdate() 线程就Thread [qtp1468303011-23] (Stepping) 停止了 根本就不跑了 我写了一个简单的测试 Date date = DateUtils.getNowDate();
SUser user=getModel(SUser.class);
user.setId(new BigDecimal(34024));
user.setMobile("12345678995");
user.update();

System.out.println("5654654654556");

控制器只会打印2017-09-11 11:35:27
[ERROR]-[Thread: main]-[com.alibaba.druid.pool.DruidDataSource.oracleValidationQueryCheck()]: invalid oracle validationQuery. select 1, may should be : select 1 FROM DUAL
Starting Complete. Welcome To The JFinal World :)
Sql: update S_USER set mobile = ? where ID = ?

后面的565都不打印

JFinal

2017-09-11 12:08

@程序小菜鸟 先找点调试方面的资料,这个是 java 基础,代码本身无法涉足调试方面的特性

程序小菜鸟

2017-09-11 12:48

@JFinal 跟代码了,在DbPro.class中 int result = pst.executeUpdate(); 执行这句线程直接结束,无法再继续调试,无报错信息输出

吃桃子的松鼠

2017-09-11 15:43

@JFinal 波总, 我用renderFile(file); 后台不报错,前端页面也没反应,然后写上普通的 输入 输出 流 显示 找不到模板,这是怎么回事?

程序小菜鸟

2017-09-11 16:33

@JFinal save() 方法就可以 但是update 方法就会线程停止

SUser s=getModel(SUser.class);
s.setId(new BigDecimal(55455));
s.setMobile("1593697412");
s.save();
System.out.println("测试成功!!!!");
System.out.println("测试成功!!!!");
System.out.println("测试成功!!!!");
控制台:
Sql: insert into S_USER(id, mobile) values(?, ?)
测试成功!!!!
测试成功!!!!
测试成功!!!!

JFinal

2017-09-12 10:50

@程序小菜鸟 输出异常需要将日志配置好,下载首页的 jfinal demo ,用上里面的配置与 jar 包

航程序员

2017-09-12 11:07

没弄log4的配置文件或者包吧 不弄的话错了控制台不输出异常

程序小菜鸟

2017-09-12 16:43

@航程序员 有日志,没异常 save()方法没有问题,update就出现线程停止

程序小菜鸟

2017-09-12 16:55

@JFinal 日志是没有任何异常输出的
[ERROR]-[Thread: main]-[com.alibaba.druid.pool.DruidDataSource.oracleValidationQueryCheck()]: invalid oracle validationQuery. select 1, may should
be : select 1 FROM DUAL

程序小菜鸟

2017-09-12 16:57

@航程序员 日志是没有任何异常输出
[ERROR]-[Thread: main]-[com.alibaba.druid.pool.DruidDataSource.oracleValidationQueryCheck()]: invalid oracle validationQuery. select 1, may should
be : select 1 FROM DUAL
save()方法插入就是没有问题 这个问题 我都解决了好多天了 还没搞定

程序小菜鸟

2017-09-12 17:01

@程序小菜鸟 我自己就写了一个我想要的数据库的表的类
MyMetaBuilder extends MetaBuilder{
protected boolean isSkipTable(String tableName) {
Map map=new HashMap();
map.put("S_USER", "S_USER");
map.put("KS_EVENT_MANAGELOG", "KS_EVENT_MANAGELOG");
map.put("S_DEPARTMENT", "S_DEPARTMENT");
map.put("AUTHORITY_ROLE", "AUTHORITY_ROLE");
return !map.containsKey(tableName);
}

然后再自动生成器里面 这样写
gernerator.setMetaBuilder(new MyMetaBuilder(getDataSource()));
也生成了自己要想的表的映射

Eagle9

2019-05-29 16:10

我也遇到了这个问题,和你的一模一样,程序走到那一步就不走了。
后面解决了。
是因为我用PLSQL执行了select * from DUAL for update;语句,这个不是重点,

重点是没有把事务提交或回滚....
可以按快捷键F10提交事务
或执行语句:commit;

希望是因为这原因导致的伙伴们不在这里浪费太多时间 :)

热门反馈

扫码入社