简体   繁体   English

使用Java持久性查询语言在表中插入和更新数据

[英]Insert and update data in table using Java Persistence Query Language

I need to update and insert data in table using Java Persistence Query Language. 我需要使用Java持久性查询语言更新并在表中插入数据。 Here is my DAO class code: 这是我的DAO类代码:

public class ApprovalDao {


    @Autowired
    private SessionFactory sessionFactory;


    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    public void addEntity(EntityValues entity) {
        getSessionFactory().getCurrentSession().save(entity);
    }


    public void deleteEntityValue(EntityValues entity) {
        getSessionFactory().getCurrentSession().delete(entity);
    }

At first, if you use @Autowired annotation setter/getteer methods are redundant. 首先,如果使用@Autowired注释,则setter/getteer方法是多余的。 In your case you should youse something like this: 在您的情况下,您应该这样:

session = sessionFactory.openSession();
session.beginTransaction();
session.update(user);
session.getTransaction().commit();

And surround it with try/catch construction. 并用try/catch结构包围它。

for updating data of fields in table : 用于更新表中字段的数据:

public void updateField(){
    Query q=getSessionFactory().getCurrentSession().createQuery(
        " update SapOrderHDR set
            SAP_ORDER_STATUS = 'A' where BC_ORDER_NO='" + bcOrderNo + "'");
    q.executeUpdate();
}

This query will update table where BC_ORDER_NO=var and set BC_ORDER_NO ='A' . 该查询将更新BC_ORDER_NO=var表并set BC_ORDER_NO ='A' SapOrderHDR is table entity class SapOrderHDR是表实体类

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM