2018-01-25 19:27

@我要做菜鸟
1、建议你在提建议或反馈问题这点上,一定要给被建议人、问题回答人一看就明白你想表达的意思,不然就现在你所说的情况,一直在靠猜去解答你的问题或理解你的建议,是会有不同的见解与出入。
2、关于第5点你说这个太虚了是随着项目的演变也算是业界标准了,单靠我这里就一两句话说不出其中的奥妙的,因为涉及到的东西太广泛了,再进一步去拓展解析,呆会就觉得说得更虚了,因为每个人的认知理接触的面也不同,不太好去把握这个面,只能在实践中才能体会。

2018-01-25 16:03

@MEZHU 哈哈,解决了就好了。

2018-01-25 12:57

首先,感谢你的反馈,其次关于这个话题怎么说着呢,我就简单分析下:
1、为什么要实例化是为了确保线程安全,java是本身就一门多线程语言。
2、如果只考虑单数据库配置这块就有些片面了,因为现实项目中有一些项目是多数据源的,且也可能是不同库配置,所以在构建一个框架时,这些基本情景是必须要周全考虑的。
3、再说用new创建实例关于性能问题其实可以基本忽略不计,这的话题印象曾经在osc上看到其他的兄弟讨论过,波总也亲自在上解答过,蛮久的了你去你翻翻看。
4、club他实例的dao你追踪到底层你就会看到其实他是个静态实例对象,关于静态变量在初始实例么后,他从系统生命周期到结束在内存中始终保存一份。
5、为什么在每个service上都会实例自己需要的dao这么做的目的是便于代码重构,提供依据,家都知道当大型项目中随着时间、需要、人员更变,项目中的代码、功能模块变得异常的庞大时你就会发现,设计之初不做一些习惯上的改变,当后期代码进行重构是件非常痛苦的事情。

2018-01-25 11:41

@hbjh 这个你要确认下是否有值 ,应该的事情多着呢,所以不太好分析你在哪步出乱子了。

2018-01-25 11:34

这么使用事物,不是这样测试的,首先你在使用Db.tx这样的操作如:
Db.tx(nw IAtom(){
@Override
public void run() {
boolean flag = Amodel.add(aJson);
if (!flag){
return flag;
}
flag = Bmodel.add(bJson);
if (!flag) {
return flag;
}
return flag;
}
});是需要你去做手动失败判断,所以你在测试时参照我上面写的,你可以将其中一个如Amodel.add(aJson)提交保存异常,就看么效果了

2018-01-25 11:32

你把El表达式的jar包引入。http://mvnrepository.com/artifact/javax.el

2018-01-25 11:14

这个一样用就好了,在这举个例子给你,如级联查询:
Test test = Test.dao.findFirst("select a.id, b.name from tb_a a left join tb_b on b.id = a.bid limi 1");
Integer id = test.getId();
String name = test.get("name");就好了。

2018-01-25 11:05

@hbjh 那你贴出来瞧瞧

2018-01-24 18:57

@JFinal 猜对有奖不?波总,哈哈!!

2018-01-24 18:55

@JFinal 上面显示是JFinal3.2的呢,看数据分析我猜是用sql server数据库。哈哈

2018-01-24 18:09

是不是执行反回数据是空的呢?呵呵

2018-01-24 18:04

这个建议你断点调试进去看下,是否有哪个参数为空造成的。

2018-01-24 18:02

是否可以把你的业务代码与sql贴出来看下。

2018-01-24 17:43

@瑶琴频曲羽衣魂 另外想尝鲜的话去拿osc gitee上拿最新的3.4版本源码下来,3.4版本虽然没有发布,但上面的源码都是经过严格的测试过的,其次这个版本对 oracle、sql server支持更顺滑放心使用。

2018-01-24 17:37

@怎懂落寞 ^_^细心看下就看得出来了,可能你太心急了,所以就简易出现这类低级别的小错误的。