gpt4 book ai didi

java - 如何使用实体管理器使用查询将值插入数据库,使用 java 类进行持久化?

转载 作者:搜寻专家 更新时间:2023-10-30 21:44:48 25 4
gpt4 key购买 nike

我想使用以下代码将数据插入到表中

    public User registerUser(String usr, String pwd) {

u=em.find(User.class,usr);
if(u!=null)
{
return null;
}
String query1 = "insert into users values('" + usr + "','" + pwd +"')";
Query q = em.createQuery(query1);
u=em.find(User.class,usr);
return u;

这里'u'是User类的对象,emEntityManager

我得到以下异常:

Servlet.service() for servlet action threw exception org.hibernate.hql.ast.QuerySyntaxException: expecting OPEN, found 'values' near line 1, column 19 [insert into users values('pawan','am')]

最佳答案

尝试

public User registerUser(String usr, String pwd) {

u=em.find(User.class,usr);
if(u!=null)
{
return null;
}

//Now saving...
em.getTransaction().begin();
em.persist(u); //em.merge(u); for updates
em.getTransaction().commit();
em.close();

return u;
}

如果 PK 是 Identity,如果您使用自动生成策略(感谢 David Victor),它将在您的持久类中自动设置。

编辑@aman_novice 评论:在你的类里面设置它

//Do this BEFORE getTransaction/persist/commit
//Set names are just a example, change it to your class setters
u.setUsr(usr);
u.setPwd(pwd);

//Now you can persist or merge it, as i said in the first example
em.getTransaction().begin();
(...)

关于@David Victor,抱歉我忘记了。

关于java - 如何使用实体管理器使用查询将值插入数据库,使用 java 类进行持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4967852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com