#
数据库查询时间没有了时分秒的解决办法
转自:http://www.cnblogs.com/lidabo/archive/2013/03/08/2950107.html 问题出处,公司一个项目中使用动态sql方式查询Oracle数据库,在展示时Date类型字段只展示日期,无时分秒。 分析: 1、众所周知Oralce的日期类型有很多种,Date ,Timestamp等。其中Date类型对用的是java.sql.Date类型,Timestamp对用的是java.sql.Timestamp类型。这两个类型均继承自java.util.Date,其中java.sql.Date是没有时分秒的大家可以查看一下javaApi 2、ResultSet 的getObject(*)方法对用Date类型默认返回的是java.sql.Date 3、网上很多人提供的解决方案是将数据库Date类型改为Timestamp类型,显示当中数据库类型DBA是不会允许你改动的,且Oracle中对于时分秒要求不严格的地方DBA反而是建议用Date而不用Timestamp以节省资源 4、ibatis的ResultMap中对Date类型指定为Timestamp却能够正常显示 经过一番思考后发现对用Date类型的字段使用rs.getTimestamp(*)即可正常显示 方案二、 增加服务器/Java应用的虚拟机参数:-Doracle.jdbc.V8Compatible=“true”
方法一:类转换为map
JAVA中编写类CacheManager,方法如下:
public void contextInitialized(javax.servlet.ServletContextEvent arg0) {
WebInfoDBO webInfoDBO = (WebInfoDBO) SpringContext.getBean("WebInfoDBO");
List list = webInfoDBO.queryBySql(" select detail_id as \"detailId\", genre_id as \"genreId\",type_two as \"typeTwo\", " + "title_name as \"titleName\",is_issue as \"isIssue\",is_hot as \"isHot\",content as \"content\"" + "from (select detail_id,genre_id,type_two, title_name, is_issue,is_hot,(select content from web_content c where web_info_d.detail_id=c.detail_id and is_hot='1') content,"
+ "rank() over(partition by genre_id order by sort_code,upt_date desc) rn from web_info_d where is_issue='1') where rn<=1", WebInfoD.class);
for (int i = 0; i < list.size(); i++) {
WebInfoD webInfoD = (WebInfoD) list.get(i);
tableComent.put("webInfoD", webInfoD);
}
}
在JSP页面获取值方法:CacheManager:
CacheManager cm = new CacheManager();
WebInfoD webInfoD = (WebInfoD) cm.tableComent.get("webInfoD");
out.println(webInfoD.getDetailId());
out.println(cm.tableComent.get("detailId"));
方法二:类转换为map中KEY,VALUE
JAVA中:
public void contextInitialized(javax.servlet.ServletContextEvent arg0) {
SysDictBO sysDictBO = (SysDictBO) SpringContext.getBean("SysDictBO");
List list = sysDictBO.queryBySql(" select TYPE_DESC_ID as \"typeDescId\", TYPE_DESC_NAME as \"typeDescName\" from Sys_Dict_d d,sys_dict h where h.type_id=d.type_id", SysDictD.class);
for (int i = 0; i < list.size(); i++) {
SysDictD sysDictD = (SysDictD) list.get(i);
tableComent.put(sysDictD.getTypeDescId(),sysDictD.getTypeDescName());
}
}
JSP中:
<%@ page import="com.gzlt.framework.cache.CacheManager" %>
CacheManager cm = new CacheManager();
WebInfoD webInfoD = (WebInfoD) cm.tableComent;
out.println(cm.tableComent.get("402881c9405be55f01405c12f8240003"));
Object[] o = (Object[]) page.getListSum().get(0);//这里是对象
System.out.println("==="+o[1]);
01.在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:
02.
03.1.查询全部字段的情况下,如"from 实体类",list中封装的对象为实体类本身,各属性都将得到填充。
04.
05.2.只查询一个字段,默认情况下,list中封装的是Object对象。
06.
07.3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。
08.
09.对于后两种情况,用标签遍历时不太方便,因为无法直接转换成实体类的对象。
3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。
set的时候,list里面保存的是对象[]
application.getRealPath("/"); 获取项目根目录,如:D:\apache-tomcat-7.0.23\webapps\sxzx\
String baseURL = request.getContextPath();
String uri = request.getRequestURI();
<div id="formcontent"></div>
<script type="text/javascript">
//发文呈报模板
$.get("../formfiles/export/402881c9405ba15a01405bc2f0fe000a.txt",
function(data){//写入到对应ID
document.getElementById("formcontent").innerHTML=data;
});
</script>
//用sys用户登录
C:\Users\Administrator>sqlplus
SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 8月 19 16:25:18 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
请输入用户名: sys/sys as sysdba
//用操作系统登录:
C:\Users\Administrator>sqlplus / as sysdba
生成UUID:sys_guid()
字符转换为小写:NLS_LOWER()
查看'_"字符:instr(english_name,'_')
字符全部转换为大写:NLS_UPPER(x[,y])
首字母转换为大写:NLS_INITCAP
Map<String, String> classColumnMap = new HashMap();
Class classType=null;
classType = Class.forName(beanName);
Field allFields[]=classType.getDeclaredFields();
for(int i=0;i<allFields.length;i++)
{
classColumnMap.put(allFields[i].getName(),allFields[i].getType());
}
JAVA中:
super.getSession().put("sysobject", list);
JSP中:、
<select id="def" name="def">
<c:forEach var="sysobject" items="${session.sysobject }" >
<option name="" value=" ${sysobject.englishName}" datevalue="ddd"> ${sysobject.chnName}</option>
</c:forEach>
</select>
或用struct标签实现:
<s:iterator value="#session.list">