Java 对于添加空白日期还有其他建议吗?
可选,带有日期。出于这个原因,如果它是空的,我想将它另存为null。通常,当我从MSQL服务器程序输入NULL时,它被接受。但编码并不会发生这种情况。我采用了以下方法。但必须有一个更简单的方法。如果有人知道,我会很高兴的Java 对于添加空白日期还有其他建议吗?,java,sql,hibernate,null,Java,Sql,Hibernate,Null,可选,带有日期。出于这个原因,如果它是空的,我想将它另存为null。通常,当我从MSQL服务器程序输入NULL时,它被接受。但编码并不会发生这种情况。我采用了以下方法。但必须有一个更简单的方法。如果有人知道,我会很高兴的 try { Harcama u = (Harcama) t; // t yi Uye formatına çevirdim Session session = sessionFactory.openSession(); Transaction tran
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ı");
}
}
为了在
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ı");