【发布时间】:2017-12-06 18:46:20
【问题描述】:
尝试将 xml 文件解析到 mysql 数据库时出现以下错误。数据库已创建。 我不明白为什么它不能创建用户
错误代码 Console errors
驱动程序.java
package DAO;
import parser.XMLParser;
import java.util.ArrayList;
import java.util.List;
import entities.*;
public class NewDriver {
public static void main(String args[]) throws Exception{
UserDAO userDAO = new UserDAO();
ProductDAO productDAO= new ProductDAO();
ProductOnHandDAO productOnHandDAO= new ProductOnHandDAO();
XMLParser x = new XMLParser();
User user1 = new User("luke", "luke");
userDAO.createUser(user1);
Store store = new Store();
StoreDAO storeDAO= new StoreDAO();
storeDAO.createStore(store);
List<Product> products = x.getProduct("test.xml");
for(Product p : products){
p.setStore(store);
productDAO.createProduct(p);
}
List<Product> productList = ProductDAO.findByStore(store);
List<ProductOnHand>productOnHands;
productOnHands = x.getAllProductOnHand(productList,"test.xml");
for (ProductOnHand p1 : productOnHands){
p1.setStore(store);
ProductOnHandDAO.createProductOnHand(p1);
}
}
}
UserDAO.java
public class UserDAO {
public void createUser(User user){
PersistenceUtil.persist(user);
}
public List<User> findAllUsers(){
EntityManager em = PersistenceUtil.createEM();
List<User> users = (List<User>)
em.createNamedQuery("User.findAllUsers").getResultList();
em.close();
return users;
}
public User findUserByUsernameAndPassword(String username, String
password){
EntityManager em = PersistenceUtil.createEM();
List<User> users = (List<User>)
em.createNamedQuery("User.findUserByUsernameAndPassword").
setParameter("username", username).setParameter("password",
password).getResultList();
em.close();
return users.get(0);
}
}
用户.java
@Entity
public class User {
@Id
@Column
private int id;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public User() {
}
}
Persistence.util
public class PersistenceUtil implements Serializable {
private static final long serialVersionUID = 1L;
protected static EntityManagerFactory emf =
Persistence.createEntityManagerFactory("dt354rel");
public static void persist(Object entity) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(entity);
em.getTransaction().commit();
em.close();
}
public static void remove(Object entity) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Object mergedEntity = em.merge(entity);
em.remove(mergedEntity);
em.getTransaction().commit();
em.close();
}
public static Object merge(Object entity) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
entity = em.merge(entity);
em.getTransaction().commit();
em.close();
return entity;
}
public static EntityManager createEM() {
return emf.createEntityManager();
}
}
如果我查看了我的持久性课程,我会得到任何帮助,这一切对我来说似乎都很好。
【问题讨论】:
-
将错误放在问题中,而不是在某个随机的远程站点上!
-
你有解决方案来帮助我还是只是来告诉我?
-
请阅读该网站关于如何提出问题的常见问题解答,它会告诉您在问题中包含所有相关细节。您想忽略这一点并要求“给我答案”。除非您遵循此处非常合理的信息,否则这不太可能成功。
标签: java mysql hibernate jpa persistence