带日期可选。因此,如果它是空的,我想将它保存为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ı");
}
}
1条答案
按热度按时间ipakzgxi1#
为了在
SQLQuery
您需要提供其类型的参数,以便可以除去if/else
声明: