`
nbas123126com
  • 浏览: 44550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle

阅读更多
    纠结了几天的问题终于得到解决了,就是java通过jdbc连接oracle数据库进行日期查询。一下代码,是本人亲自检验的,可以使用。
private String translate(String idValue) {
System.out.println("idValue is ***************:"+idValue);
String name = null;

if (idValue == null || idValue.equalsIgnoreCase("null"))
return "";

HashMap dicMap = (HashMap) pageContext.getRequest().getAttribute(tableName);
if (dicMap == null) {
dicMap = new HashMap();
pageContext.getRequest().setAttribute(tableName, dicMap);
} else {
name = (String) dicMap.get(idCol+idValue+nameCol);
if (name != null)
{
return name; // 从map中已经找到了就直接返回
}

}

/** *********进入数据库查询********** */
EOSParameter param = new EOSParameter();
param.setAppID(EOSAppConfiguration.getDefaultAppID());
param.setUnitName("WriteTag");
param.setUnitId("0");
Statement stmt = null;
ResultSet rs = null;
String sql;
try {
Connection conn = param.getDBBroker().getConnection();
//判断如果idValue参数输入的是字符串形式的日期,如:2012-12-21(太阳直射南纬23度)
//则将其通过oracle数据库的函数to_date转化为oracle能够识别的日期格式。
if(idValue.indexOf("-")>0)
{
/*
sql = "select '" + nameCol + "'   from  '" + tableName
+ "' where '" + idCol+"'='"+to_date(idValue,"yyyy-mm-dd")"'";
System.out.println("sql is .............:"+sql);

*/
/*
List list = new ArrayList();
int i = idValue.indexOf("-");
String s1 = idValue.substring(0,i-1);
list.add(s1);
int j = s1.indexOf("-");
String s2 = s1.substring(i,j-1);
list.add(s2);
String s3 = s1.substring(j,s2.length());
list.add(s3);


sql="select "+nameCol+" from "+tableName+" where "+idCol+" = ?1";
                System.out.println("sql is :"+sql);
                PreparedStatement   pstmt = conn.prepareStatement(sql);
               
                pstmt.setDate(1, new java.sql.Date(Integer.parseInt(s1),Integer.parseInt(s2),Integer.parseInt(s3)));
                */
sql = "select " + nameCol + "   from  " + tableName
+ " where " + idCol + "= "+"to_date('"+idValue+"','yyyy-MM-dd')";
/*
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "to_date('"+idValue+"','yyyy-MM-dd')");
System.out.println("sql is :"+sql);
System.out.println("date is :"+"to_date('"+idValue+"','yyyy-mm-dd')");
                rs = pstmt.executeQuery();
                */
stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
}
else{
            sql = "select " + nameCol + "   from  " + tableName
+ " where " + idCol + "='" + idValue + "'";
// System.out.println(sql);
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
}

if (rs.next()) {
name = rs.getString(1);
}
           

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs == null)
rs.close();
if (stmt == null)
stmt.close();
param.closeDB();
} catch (Exception e1) {
e1.printStackTrace();
}


}

if(name==null) name="";

  dicMap.put(idCol+idValue+nameCol, name);


return name;

 


}
分享到:
评论

相关推荐

    Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer)

    Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer 不用安装Oracle客户端也可以使用PLSQL Developer 绿色! 安全! 轻便! 可靠! 1、本软件可作为简单的Oracle9i客户端...

    oracle10G和oracle11G的OCI.dll

    oci.dll是Oracle Call Interface的缩写,它是Oracle数据库的一个核心组件,允许开发者使用各种编程语言与Oracle数据库进行交互。在Oracle 10G和11G版本中,oci.dll扮演了至关重要的角色,为应用程序提供了访问数据库...

    oracle.jdbc.driver.oracledriver Oracle JDBC驱动包 ojdbc6

    Oracle JDBC驱动包是Oracle数据库与Java应用程序之间进行通信的关键组件,它使得Java程序员能够通过编写Java代码来操作Oracle数据库。标题中的"ojdbc6"指的是Oracle JDBC驱动的一个特定版本,适用于Java SE 6环境。...

    cx_Oracle使用手册

    cx_Oracle是Python编程语言中用于连接Oracle数据库的一个模块。该模块遵循Python数据库API规范,并且适用于Oracle 11.2和12.1版本,同时兼容Python 2.x和3.x版本。cx_Oracle模块通过使用Oracle客户端库来实现与...

    基于C#连接Oracle数据库Oracle.ManagedDataAccess

    首先,Oracle.ManagedDataAccess是Oracle公司提供的一个纯.NET框架的客户端驱动,它允许开发者在不安装Oracle客户端的情况下,直接与Oracle数据库进行交互。这个库包含了所有必要的组件,使得C#程序可以方便地执行...

    Python连接oracle工具cx_Oracle官方文档

    cx_Oracle是Python数据库API规范的实现,用于访问Oracle数据库。目前,该模块经过对Oracle客户端版本11.2、12.1和12.2以及Python版本2.7、3.4、3.5和3.6的测试。cx_Oracle遵循开源的BSD许可证,这表示用户可以自由地...

Global site tag (gtag.js) - Google Analytics