我们有一个应用程序的连接池组件(JAR文件).截至目前,应用程序连接详细信息与JAR文件(.properties文件中)捆绑在一起.
我们可以让它更通用吗?我们可以让客户端告诉属性文件详细信息(路径和文件名)并使用JAR来获取连接吗?
在客户端代码中有这样的东西是否有意义:
XyzConnection con = connectionIF.getConnection(uname, pwd);
Run Code Online (Sandbox Code Playgroud)
除此之外,客户端将指定(以某种方式???)具有要连接的URL,超时等的属性文件详细信息.
如果我正在开发一个hiberante应用程序,我还在开发一个DD模型吗?
我的应用程序确实有一个服务层(与Observer模式一致).还会有一个域层,其中所有的休眠实体都存在吗?
我正在寻找我的应用程序,如下所示:

我是否需要了解域驱动设计来编写Hibernate实体?
应用程序可以是混合的 - 服务层中的OOD和持久层中的DDD吗?
我糊涂了.请澄清.
我正在尝试UNION两个查询的结果.但是我收到以下错误:
Error at Command Line:9 Column:81
Error report:
SQL Error: ORA-00907: missing right parenthesis
00907. 00000 - "missing right parenthesis"
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
SELECT application_id, clicks, datee, client_id FROM(
(select
APPL_CD AS application_id,
count(*) as clicks,
to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee,
ALRT_RSPNS_FROM_CLIENT_ID AS client_id
from ALRT_PLATFORM_ALRT_HSTRY
where ACTN_TAKE_CD is not null
group by to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy'), APPL_CD, ALRT_RSPNS_FROM_CLIENT_ID order by datee)
UNION ALL
(select
APPL_CD AS application_id,
count(*) as clicks,
to_date((to_char(ACTN_TAKE_DATA_TM, 'dd-mm-yyyy')), 'dd-mm-yyyy') as datee,
ALRT_RSPNS_FROM_CLIENT_ID AS client_id
from ALRT_PLATFORM_ALRT
where ACTN_TAKE_CD is …Run Code Online (Sandbox Code Playgroud) 我想将我们公司的版权信息添加到我们所有的现有源代码文件中.
该项目是在中国开发的Eclipse.所以,对于新文件,我可以按照此处的建议修改设置.但对于现有文件,我该怎么做呢.如何修改数百个java文件以添加版权信息.(而且我无法打开上面链接中提到的relng插件.
任何基于Windows的文本操作脚本语言也会有所帮助.
哪种数据类型易于表示十进制数,如"10364055.81".
如果尝试使用double:
double d = 10364055.81;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试打印数字时,它显示为" 1.036405581E7 ",这是我不想要的.
我应该使用BigDecimal吗?但其显示为10364055.81000000052154064178466796875.是否有任何数据类型显示值?此数字也可能大于作为示例的数字.
BTW,将使用BigDecimal效果的应用程序的性能?? 我几乎可以在所有的DTO中使用它.
我写了七个测试用例来理解finally块的行为.如何finally运作背后的逻辑是什么?
package core;
public class Test {
public static void main(String[] args) {
new Test().testFinally();
}
public void testFinally() {
System.out.println("One = " + tryOne());
System.out.println("Two = " + tryTwo());
System.out.println("Three = " + tryThree());
System.out.println("Four = " + tryFour());
System.out.println("Five = " + tryFive());
System.out.println("Six = " + trySix());
System.out.println("Seven = " + trySeven());
}
protected StringBuilder tryOne() {
StringBuilder builder = new StringBuilder();
try {
builder.append("Cool");
return builder.append("Return");
}
finally {
builder = null; …Run Code Online (Sandbox Code Playgroud) Hibernate:
/* load entities.Department */ select
department0_.name as name4_0_,
department0_.id as id4_0_
from
J_DEPT department0_
where
department0_.name=?
Hibernate:
/* load one-to-many entities.Department.employees */ select
employees0_.dept as dept4_1_,
employees0_.id as id1_,
employees0_.id as id5_0_,
employees0_.dept as dept5_0_,
employees0_.name as name5_0_
from
J_EMP employees0_
where
employees0_.dept=?
Run Code Online (Sandbox Code Playgroud)
请注意,ID和DEPT列选择两次.
@Entity
@Table(name = "J_EMP")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "mySeq")
@SequenceGenerator(name = "mySeq", sequenceName = "CNTRY_SEQ")
private Long id;
private String name;
@ManyToOne
@JoinColumn(name = "dept") …Run Code Online (Sandbox Code Playgroud) 如果记录不存在,则应插入.如果记录存在,Grails应该进行更新.
new MyEntity(attr1:'val1', attr2:'val2').saveOrUpdate()????
Run Code Online (Sandbox Code Playgroud)
编辑 我根据你的建议修改了我的代码:
List<NutDto> res = np.parseNutData(file.inputStream);
for(NutDto cellValue : res){
def nutInstance = NutData.get(cellValue.getIdd())
System.out.println("nutInstance = " + nutInstance);
if(nutInstance){
System.out.println("Exists : " + nutInstance);
nutInstance.foo=cellValue.getFoo()
nutInstance.bar=cellValue.getBar()
}
else{
System.out.println("Not Exists")
nutInstance = new NutData(idd:cellValue.getIdd(),
foo:cellValue.getFoo(),
bar:cellValue.getBar())
}
def saveres = nutInstance.save(failOnError: true);
println("saveres = " + saveres);
nutInstance.errors.each { println it }
}
Run Code Online (Sandbox Code Playgroud)
仍然没有更新.它的投掷错误.
Field error in object 'sps.NutData' on field 'idd': rejected value [123456-1234]; codes [sps.NutData.idd.unique.error.sps.NutData.idd,sps.NutData.idd.unique.error.idd,sps.NutData.idd.unique.error.java.lang.String,sps.NutData.idd.unique.error,nutData.idd.unique.error.sps.NutData.idd,nutData.idd.unique.error.idd,nutData.idd.unique.error.java.lang.String,nutData.idd.unique.error,sps.NutData.idd.unique.sps.NutData.idd,sps.NutData.idd.unique.idd,sps.NutData.idd.unique.java.lang.String,sps.NutData.idd.unique,nutData.idd.unique.sps.NutData.idd,nutData.idd.unique.idd,nutData.idd.unique.java.lang.String,nutData.idd.unique,unique.sps.NutData.idd,unique.idd,unique.java.lang.String,unique]; arguments [idd,class sps.NutData,123456-1234]; default message [Property [{0}] of …Run Code Online (Sandbox Code Playgroud) 如何处理SOAP消息响应如下?
Run Code Online (Sandbox Code Playgroud)<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:new="http://foo/bar"> <S:Header/> <S:Body>OK</S:Body> </S:Envelope>
这是我在WSDL中的定义:
<wsdl:operation name="MyRequest">
<wsdl:input message="tns:MyRequest" name="MyRequest">
</wsdl:input>
<wsdl:output message="tns:MyRequestResponse" name="MyRequestResponse">
</wsdl:output>
</wsdl:operation>
<xs:element name="MyRequestResponse" type="xs:string"/>
Run Code Online (Sandbox Code Playgroud)
服务:
@WebMethod(operationName = "MyRequest")
@WebResult(name = "MyRequestResponse", targetNamespace = "http://foo/bar", partName = "parameters")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public String MyRequest(
@WebParam(name = "MyRequest", targetNamespace = "http://foo/bar", partName = "parameters")
MyRequest parameters);
Run Code Online (Sandbox Code Playgroud)
我确实试过使用拦截器并用节点包装响应'OK'.但是,想知道是否有更简洁的方法通过在JAXB/WSDL层中处理它来实现它.
java ×6
hibernate ×2
orm ×2
bigdecimal ×1
database ×1
eclipse ×1
finally ×1
grails ×1
indexing ×1
jar ×1
jaxb ×1
jdk1.4 ×1
ora-00907 ×1
oracle ×1
performance ×1
properties ×1
save ×1
soap ×1
sql ×1
try-finally ×1
union ×1
web-services ×1
windows ×1
wsdl ×1