大家好我是菜鸟我有一个问题
我用的是Hibernate+struts+mysql
我想对数据库中的一条记录进行修改方法是:
public void upCity(int cityId) {
String s = "update Cityscenery set provinceId=?,cityName=?,cityEn=?,contryPronoun=?,employeeId=?,citySceneryRe=?,citySceneryDate=? where cityId="+ cityId;
Session session = HibernateSessionFactory.getSession();
Transaction t = session.beginTransaction();
Query q = session.createQuery(s);
q.setParameter(0, provinceId);
q.setString(1, cityName);
q.setString(2, cityEn);
q.setString(3, contryPronoun);
q.setParameter(4, employeeId);
q.setString(5, citySceneryRe);
q.setDate(6, citySceneryDate) int i = q.executeUpdate();
t.commit();
}
标红的地方是对数据库中的日期字段进行更新Date citySceneryDate = new Date();为什么在页面中的显示是2008-08-07 00:00:00.0 他把后边的时间都归零了这是为什么很是纳闷哦 !~请高人教教俺!~!~
我用的是Hibernate+struts+mysql
我想对数据库中的一条记录进行修改方法是:
public void upCity(int cityId) {
String s = "update Cityscenery set provinceId=?,cityName=?,cityEn=?,contryPronoun=?,employeeId=?,citySceneryRe=?,citySceneryDate=? where cityId="+ cityId;
Session session = HibernateSessionFactory.getSession();
Transaction t = session.beginTransaction();
Query q = session.createQuery(s);
q.setParameter(0, provinceId);
q.setString(1, cityName);
q.setString(2, cityEn);
q.setString(3, contryPronoun);
q.setParameter(4, employeeId);
q.setString(5, citySceneryRe);
q.setDate(6, citySceneryDate) int i = q.executeUpdate();
t.commit();
}
标红的地方是对数据库中的日期字段进行更新Date citySceneryDate = new Date();为什么在页面中的显示是2008-08-07 00:00:00.0 他把后边的时间都归零了这是为什么很是纳闷哦 !~请高人教教俺!~!~
解决方案 »
- 急需注册一个JSP空间,在线发布过JSP网站的大虾们给点意见,谢谢(广告勿扰)
- 为什么tomcat返回resultset总为空
- 关于struts的问题
- 求助:如何通过jsp实现服务器端的文件及目录远程浏览?
- 关于servelt和structs的w问题
- 怎么单独取出kindeditor里面的图片和附件地址啊
- 特别奇怪的连接数据库问题 jdk1.4.2 + tomcat4.1+sql server jdbc drive 高分求救!
- 有谁上过国外人气较旺的java论坛!
- 散分题---100分
- 求救:关于数据的图形显示,高手请进
- 一个javascript在时间上应用的问题
- Date类型显示的问题!!!
预备语句会放在缓存中,下次再调的时候直接从缓存中取。你这样一般放在缓存,一半自己组装,效率会有一点点影响。另外,既然是用hibernate+struts,更新的时候为什么不自动组装呢?
导致 SQL 每次都是不一样 DBMS 会每次都去检查语法、编译等操作。而采用占位符
的话,这个 SQL 就是一样的,DBMS 只会在第一次进行语法检查和编译,下次再是同
一个时就会从它自己的缓冲区中取出相同的东西。2,安全问题。采用字符串拼接 SQL 的话,会存在 SQL 注入安全漏洞,而采用占位符
的话不存在这个问题,因为这样的 SQL DBMS 是预编译的,然后再把参数填进去的,参
数中的 SQL 关键字会被当作普通字符参数处理。3,代码的复杂度。如果一个 SQL 语句有很多参数需要传递,采用字符串拼接的话,单引
号、双引号光这些就能把人给弄晕掉。而占位符的话,看上去就比较干净,也比较符合面
向对象的思维。以我的理解基本上就是以上几个优点。=================================================5 楼所说的自动组装,我不大会 Hibernate 以我的理解是使用 Session 的 update 方法直接更新。Cityscenery city = new Cityscenery();
city.setCityId(cityId);
city.setPrivinceId(privinceId);
city.setCityName(cityName);
city.setCityEn(cityEn);
city.setContryPronoun(contryPronoun);
city.setEmployeeId(employeeId);
city.setCityScenerRe(citySceneryRe);
city.setCitySceneryDate(citySceneryDate);public void upCity(Cityscenery city) {
....
session.update(city);
....
}