java oracle查询

Python025

java oracle查询,第1张

1、其实你的查询看作是select ename from table 就行,因为你只查询了一个字段。

2、e.name和e.job是不能取值的,因为他是给你提供结果的集合,也就相当于你的table,但是你可以在外面的查询加上job,也就是:select ename,ejob from table这种形式。

3、序号代表的是问号的顺序。

首先你要清楚乱码的原因,就是存储和读取的编码不一致导致的。

你存储的编码是US7,读的时候用GBL,肯定会乱码

我觉得US7的编码本身就不支持中文,是否应该修改oracle数据库的配置呢

客户端字符集不一定是要和服务器端字符集一致。Oracle的客户端会自动转换。但是这种转换必须是可行的。例如服务器端是UTF8,客户端是ZHS16GBK就可以,因为UTF8能够描述的字符集是ZHS16GBK的全集。

反过来,如果服务器端是US7ASCII客户端是ZHS16GBK就不可以!

事件: 报表接口数据库突然无法连接 ,导致无法正常取数操作。异常信息: Io 异常: Got minus one from a read call分析: 数据库地址及其配置信息都为发生变化 , 经询问后得知数据库调整为集群工作方式 。结果:1. 修改普通 JDBC 连接字符串为集群工作方式。2. 接口中的 JDBC JAR文件不适合集群工作方式。思维宽度:1. JDBC JAR文件的选择, Classes12 到底是个啥玩意? 第一次听很晕 , 其实就是 oracle 数据库自带的 JDBC ,全名叫 classes12.jar 。 高手都这么忽悠人的!常用JDBC JAR 信息序号 常用JDBC驱动包 JDK 1.4 JDK 1.5 JDK 1.6 单例数据库 集群数据库 Class.forName1 OracleJdbcDriver9i.jar 支持 支持 支持 支持 不支持 oracle.jdbc.OracleDriver2 classes12.jar(oracle 92i) 支持 支持 支持 支持 不支持 oracle.jdbc.OracleDriver3 ojdbc14.jar(oracle 92i) 支持 支持 支持 支持 不支持 oracle.jdbc.OracleDriver4 classes12.jar(oracle 10G) 支持 支持 支持 支持 支持 oracle.jdbc.OracleDriver5 ojdbc14.jar(oracle 10G) 支持 支持 支持 支持 支持 oracle.jdbc.OracleDriver6 ojdbc5.jar 不支持 支持 支持 支持 支持 无需 Class.forName 加载7 ojdbc6.jar 不支持 不支持 支持 支持 支持 无需 Class.forName 加载序号1 : OracleJdbcDriver9i.jar 这就是我常用的 JDBC 驱动,本次肇事者 !出身不明 , 户口本 (MANIFEST.MF) 内容为空 ,初步分析为 oracle92i 时代产物。序号2, 3 : 系出同门 ,都为 oracle92i 自带 ,家庭住址: oracle/jdbc/libclasses12.jar 户口本信息:Specification-Title: “Oracle JDBC driver classes for use with JDK1.2 and JDK1.3”Specification-Version: “Oracle JDBC Driver version - 9.0.2.0.0”ojdbc14.jar 户口本信息:Specification-Title: “Oracle JDBC driver classes for use with JDK1.4”Specification-Version: “Oracle JDBC Driver version - 9.0.2.0.0”序号4,5 : oracle 10G 的产物 与 oracle 92i 最大的区别在于支持 集群查询。序号 6,7: ojdbc5.jar 支持 JDK 1.5 ,支持 JDBC 3.0 ojdbc6.jar 支持 JDK 1.6 ,支持 JDBC 4.0两者无需执行 Class.forName(“oracle.jdbc.OracleDriver”)直接 DriverManager.getConnection( URL, USER, PWD) 就OK了。如果项目仅支持 JDK1.4 就不要妄动 , 选择序号 4 ,5 不二的选择 。如果项目支持 JDK1.5 以上 推荐 序号 6 ,7 研究一下新特性。2. 集群工作方式 连接字符串…慎重选择连接之外的属性。 偷懒粘贴下代码 !StringBuffer url = new StringBuffer()url.append(“jdbc:oracle:thin:@(description= (address_list =”)url.append(“(address=(protocol=tcp)(host=192.168.31.9)(port=1521))”)//根据自己情况继续追加集群信息,格式如下//bf.append(“(address=(protocol=tcp)(host=10.37.27.112)(port=1521))”)url.append(“(load_balance=yes)”)//load_balance=yes表示是否负载均衡url.append(“)”)//address_list 结束url.append(“(connect_data =”)url.append(“(server = dedicated)”)//server = dedicated表示专用服务器模式,可以去掉url.append(“(service_name=wangjj)”)//数据库服务名称url.append(“(failover_mode =”)url.append(“(type=session)”)//TYPE = SESSION表示当一个连接好的会话的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话正在执行的SQL 需要重新执行url.append(“(method=basic)”)//METHOD = BASIC表示初始连接就连接一个接点,彵还有个选项是preconnect,表示初始连接所有的接点url.append(“(retries=5)”)//RETRIES 重试次数url.append(“(delay=15)”)//DELAY 重试延迟 单位为秒url.append(“)”)//failover_mode 结束url.append(“)”)//connect_data 结束url.append(“)”)//description 结束