我正在研究Spring Data JPA.考虑下面的示例,我将默认使用所有crud和finder功能,如果我想自定义查找器,那么也可以在界面本身轻松完成.
@Transactional(readOnly = true)
public interface AccountRepository extends JpaRepository<Account, Long> {
@Query("<JPQ statement here>")
List<Account> findByCustomer(Customer customer);
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何为上述AccountRepository添加一个完整的自定义方法及其实现?由于它的接口我无法在那里实现该方法.
我在java.lang.ClassNotFoundException尝试运行代码时遇到异常,
我的守则
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/simple",
"root","root");
Statement stmt=con.createStatement();
String query="SELECT * FROM CUST";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
System.out.print(rs.getString("CUST_NAME") +" ");
System.out.print(rs.getString(2) +" ");
System.out.print(rs.getString(3) +" ");
}
rs.close();
stmt.close();
con.close();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (SQLException e)
{
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我收到了错误
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at Simple.MyProg.main(MyProg.java:15)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我很困惑何时应该在我的应用程序中实现ACL(访问控制列表)系统,虽然我可以通过获取会话组ID并使用Auth组件限制访问来轻松管理组的权限.
ACL解决方案如何比我上面讨论的方法更好(根据组ID限制组访问)?
在管理应用程序中的访问权限时,实施ACL解决方案如何简化?
到目前为止,我已经了解到,通过ACL,可以在运行时授予和撤消权限,但是在不使用ACL的情况下也可以实现此功能.
我对此非常困惑,请帮助我理解这个概念,何时使用ACL以及在Web应用程序中使用ACL的好处.
我更喜欢用cakePHP v1.3进行编码,所以如果在cakephp的上下文中给出解释会很好,但是非常感谢任何与我的问题相关的帮助(语言/技术独立).
我正在使用slf4j + logback进行日志记录.我正在寻找一个好的事件日志查看器(如Apache Chainsaw).Logback网站提到Lilith.莉莉丝网站不仅丑陋(网站主页上也这样说),但也缺乏任何文件.
有没有关于如何开始使用Lilith的教程(可能我发现很难掌握,因为我从未使用过Apache Chainsaw,如果我阅读Chainsaw的教程会有帮助吗?).
此外,是否有任何替代日志查看器用于更好的文档?
我发现JAXB2的一些例子@XmlRegistry在互联网上谈论使用的概念,但没有很好的深入辅导@XmlRegistry用@XmlElementDecl,如果它的概念不是一般的多探索奇迹.
无论如何这里是我的问题,首先是一些我用来使用JAXB解组xml的示例类:
我正在尝试使用JAXB解组的主要类 - Employee.java
package com.test.jaxb;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.namespace.QName;
import com.test.jaxb.dto.Address;
@XmlRootElement
public class Employee {
private int id;
private String name;
private String email;
private List<Address> addresses;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() { …Run Code Online (Sandbox Code Playgroud) 此外,我已经阅读了这个回溯页面,其中有一些非常好的信息,说明为什么选择Logback over log4j.
我希望为具有以下技术堆栈的项目实现日志框架 -
我已经决定使用slf4j作为外观,所以这个问题是关于是否使用slf4j + log4j或slf4j + logback(我知道logback本身使用slf4j).
我正在寻找的是 -
编辑:我已经阅读了许多地方(下面的答案之一也说明了这一点)log4j已经死亡/已弃用.与此相反,log4j刚刚发布了其2.0版本的alpha版本.所以我不买那个论点.
过了两天,我每45秒不断收到一个错误对话框,标题为:
发生了多个问题
在下面说:
java.lang.ClassCastException
在详细信息中,有重复的行显示:
org.eclipse.core.internal.dtree.NoDataDeltaNode无法转换为org.eclipse.core.internal.dtree.DataTreeNode
这是一张照片:

我按OK,然后继续编码,我的代码在模拟器和手机上都可以正常工作,但是每分钟看到此对话框真是令人讨厌,甚至不到一分钟!
您好,我刚开始使用 Java 中的 SQL(实际上不久前也开始使用 Java 也......),我创建了一个类来连接 MySQL 数据库,并且一切正常。
现在我有一个关于获得结果的问题。
在 PHP 中我会做类似的事情
While($row = mysql_fetch_assoc()) {
echo $row['rowname'];
}
Run Code Online (Sandbox Code Playgroud)
在 Java 中,我试图创建与此类似的东西,但我不知道我是否走正确的路,或者它应该有很大不同或其他什么......这是我所做的(参见 getResultList 方法)
public class MysqlConnect{
private String query;
private ResultSet rs;
public void connectToAndQueryDatabase(String database, String username, String password) throws SQLException {
Connection con = null;
try {
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/" + database,
username,
password);
} catch (SQLException e) {
e.printStackTrace();
}
Statement stmt = con.createStatement();
rs = stmt.executeQuery(query);
}
public void setQuery(String query) {
this.query = …Run Code Online (Sandbox Code Playgroud)