还有其他关于添加空白日期的建议吗?

qoefvg9y  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(226)

带日期可选。因此,如果它是空的,我想将它保存为null。通常,当我从msql服务器程序输入null时,它被接受。但编码是不会发生的。我采用了以下方法。但一定有更简单的方法。如果有人知道,我会很高兴的。

try {
    Harcama u = (Harcama) t; // t yi Uye formatına çevirdim

    Session session = sessionFactory.openSession();
    Transaction transaction = session.beginTransaction();

    if (u.getBitis() == null) {
        SQLQuery insertQuery = session.createSQLQuery("INSERT INTO Harcama (turId,altId,basl,nott,harcananTL) VALUES (?,?,?,?,?)");

        insertQuery.setParameter(0, u.getTurId());
        insertQuery.setParameter(1, u.getAltId());
        insertQuery.setParameter(2, u.getBasl());
        insertQuery.setParameter(3, u.getNott());
        insertQuery.setParameter(4, u.getHarcananTl());
        insertQuery.executeUpdate();

        session.getTransaction().commit();

        sonuc=true;

        Gnl.MesajVer.Sonuc("Kayıt ekleme işlemi başarı ile Tamamlandı");

    } else {
        SQLQuery insertQuery = session.createSQLQuery("INSERT INTO Harcama (turId,altId,basl,bitis,nott,harcananTL) VALUES (?,?,?,?,?,?)");

        insertQuery.setParameter(0, u.getTurId());
        insertQuery.setParameter(1, u.getAltId());
        insertQuery.setParameter(2, u.getBasl());
        insertQuery.setParameter(3, u.getBitis());
        insertQuery.setParameter(4, u.getNott());
        insertQuery.setParameter(5, u.getHarcananTl());
        insertQuery.executeUpdate();
        session.getTransaction().commit();

        sonuc=true;

        Gnl.MesajVer.Sonuc("Kayıt ekleme işlemi başarı ile Tamamlandı");
   }
}
ipakzgxi

ipakzgxi1#

为了在 SQLQuery 您需要提供其类型的参数,以便可以除去 if/else 声明:

Harcama u = (Harcama) t; // t yi Uye formatına çevirdim

Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();

SQLQuery insertQuery = session.createSQLQuery("INSERT INTO Harcama (turId,altId,basl,bitis,nott,harcananTL) VALUES (?,?,?,?,?,?)");

insertQuery.setParameter(0, u.getTurId());
insertQuery.setParameter(1, u.getAltId());
insertQuery.setParameter(2, u.getBasl());
// insertQuery.setParameter(3, u.getBitis(), new DateType()); // indicate hibernate type for nullable value
insertQuery.setParameter(3, u.getBitis(), StandardBasicTypes.DateType); // or use the type listed in Hibernate type registry
insertQuery.setParameter(4, u.getNott());
insertQuery.setParameter(5, u.getHarcananTl());
insertQuery.executeUpdate();
transaction.commit();

sonuc = true;

Gnl.MesajVer.Sonuc("Kayıt ekleme işlemi başarı ile Tamamlandı");

相关问题