JDBC兼容的应用程序应该在哪里存储其SQL语句?为什么?
到目前为止,我设法确定了以下选项:
每个人的"优点"和"缺点"是什么?
SQL代码应该被视为"代码"还是"元数据"?
存储过程是否应仅用于性能优化,还是数据库结构的合法抽象?
性能是决定的关键因素吗?供应商锁定怎么样?
什么是更好的 - 松耦合或紧耦合,为什么?
编辑:谢谢大家的答案 - 这是一个总结:
元数据驱动即对象关系映射(ORM)
优点:
缺点:
硬编码/封装在DAO层中
优点:
缺点:
存储过程
优点:
缺点:
外部文件(例如属性或资源文件)
优点
缺点:
嵌入在SQLJ子句中 …
我决定将Log4J日志框架用于新的Java项目.我想知道我应该使用什么策略来创建/管理Logger实例以及为什么?
每个类的一个Logger实例,例如
class Foo {
private static final Logger log = Logger.getLogger(Foo.class);
}
Run Code Online (Sandbox Code Playgroud)注意:在这些文章中已经在某种程度上考虑了这个问题:
我正在寻找一种在外部文件中存储SQL语句的Java库/框架/技术.支持团队(包括DBA)应该能够(略微)更改语句,以便在数据库架构更改或调整目的时保持它们同步.
以下是要求:
笔记:
到目前为止,我设法找到以下Java库,它们使用外部文件来存储SQL语句.但是,我主要对存储而不是隐藏所有JDBC"复杂性"的库感兴趣.
示例文件内容:
<s:query name="get_emp">
<s:param name="name" type="string"/>
<s:sql databases="oracle">
select *
from scott.emp
join scott.dept on (emp.deptno = dept.deptno)
where emp.ename = <s:bind param="name"/>
</s:sql>
</s:query>
Run Code Online (Sandbox Code Playgroud)示例文件内容:
<sqlMap namespace="Contact"">
<typeAlias alias="contact"
type="com.sample.contact.Contact"/">
<select id="getContact"
parameterClass="int" resultClass="contact"">
select CONTACTID as contactId,
FIRSTNAME as firstName,
LASTNAME as lastName from
ADMINISTRATOR.CONTACT where CONTACTID = #id#
</select>
</sqlMap>
<insert id="insertContact" parameterClass="contact">
INSERT INTO ADMINISTRATOR.CONTACT( CONTACTID,FIRSTNAME,LASTNAME)
VALUES(#contactId#,#firstName#,#lastName#);
</insert>
<update id="updateContact" parameterClass="contact"> …Run Code Online (Sandbox Code Playgroud)我不时地使用Eclipse重构功能.有些技术比其他技术更明显,有些我从未尝试过.
什么重构对您最有用,为什么?
注意:我觉得这个演示文稿非常有用,也许是因为它是示例驱动因此很容易理解:
" 为每个人重构 - 如何以及为什么使用Eclipse的自动重构功能 "
编辑:这篇文章也很有用(谢谢抖动)
任何人都可以推荐一个好的ANSI SQL参考手册?
当您需要基本或更深入的解释或示例时,我没有必要指一个教程,而是一个适当的参考文档来查找.
目前我正在使用W3Schools SQL教程和SQL教程,但是我觉得它们"不够深入".
当然,每个主要的RDBMS制作人都会有一些针对他们自己的产品的参考手册,但他们往往有偏见,有时会使用专有扩展.
编辑:问题的目的是关注数据库引擎的共同点,即SQL根源.但理解这些差异也可能是一件好事 - 这非常有趣.
下面给出了某些函数声明的JavaScript代码片段吗?如果不是,有人可以概述一下它们是什么吗?
some_func = function(value) {
// some code here
}
Run Code Online (Sandbox Code Playgroud)
和
show:function(value){
// some code here
}
Run Code Online (Sandbox Code Playgroud) 我想在登录页面上包含"记住我"功能,但我不知道它的实际含义(它的工作原理).我在许多网站上看到了不同的用途,但我没有得到它的实际意义.
我想发送一封电子邮件到非ASCII电子邮件地址,我不确定使用JDK8的推荐程序是什么.
我该如何处理以下电子邮件地址?
是否有任何安全注意事项需要注意?
这个示例代码是否足够?
import java.net.IDN;
public class IDNMailHelper {
public static String toIdnAddress(String mail) {
if (mail == null) {
return null;
}
int idx = mail.indexOf('@');
if (idx < 0) {
return mail;
}
return localPart(mail, idx) + "@" + IDN.toASCII(domain(mail, idx));
}
private static String localPart(String mail, int idx) {
return mail.substring(0, idx);
}
private static String domain(String mail, int idx) {
return mail.substring(idx + 1);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个API,需要加载当前目录和所有子目录中的所有.rb文件.目前,我正在为我添加的每个文件输入一个新的require语句,但我想把它放在我只需要将文件放在其中一个子目录中并自动添加的地方.
是否有标准命令来执行此操作?
My Java(JDK6)项目使用Spring和JDBCTemplate进行所有数据库访问.我们最近从Spring 2.5升级到Spring 3(RC1).该项目不使用像Hibernate和EJB这样的ORM .
如果我需要读取一堆记录,并用它们做一些内部处理,似乎有几个(重载)方法:query,queryForList和queryForRowSet
使用一个而不是另一个的标准应该是什么?有任何性能差异吗?最佳做法?
您是否可以推荐一些外部参考资料以进一步研究该主题?
java ×6
sql ×3
ansi-sql ×1
cookies ×1
eclipse ×1
email ×1
file ×1
jakarta-mail ×1
java-8 ×1
javascript ×1
jdbc ×1
jdbctemplate ×1
log4j ×1
logging ×1
login ×1
manual ×1
recordset ×1
recursion ×1
refactoring ×1
reference ×1
remember-me ×1
ruby ×1
security ×1
spring ×1