系统HIS开发ORACLE乱码解决方案(HIS库编码方式为US7ASCII)
2011-03-01 11:01
621 查看
package com.index.util; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.Set; import net.sf.json.JSONSerializer; public class HisDbConnection { private Connection dbConnection = null; private Statement selectPro = null; // 用于 select 操作 private Statement updatePro = null; // 用于 update 操作 private ResultSet dbResultSet = null; // 操作 select 结果集 private String driverName;// 声明oracle驱动类 private String dbHost; private String dbPort; private String dbName; private String dbUserName; private String dbPassword; private String enCoding; private Integer count; /** * 实例化DbConnection对象 * * @param host * 数据库主机(IP) * @param port * 数据库端口 * @param dName * 数据库名称 * @param uName * 用户名 * @param password * 用户密码 * @throws IOException */ public HisDbConnection() throws IOException { Properties p = new Properties(); p.load(CreatTable.class .getResourceAsStream("/com/index/util/His.properties")); driverName = "oracle.jdbc.driver.OracleDriver"; dbHost = p.getProperty("hisHost"); dbPort = p.getProperty("hisPort"); dbName = p.getProperty("hisName"); dbUserName = p.getProperty("hisUserName"); dbPassword = p.getProperty("hisPassword"); //enCoding = "?useUnicode=true&characterEncoding=utf-8&autoReconnect=true"; }// end DbConnection(...) public Connection getConnection() throws SQLException { StringBuilder urlTem = new StringBuilder(); urlTem.append("jdbc:oracle:thin:@"); urlTem.append(dbHost); urlTem.append(":"); urlTem.append(dbPort); urlTem.append(":"); urlTem.append(dbName); //urlTem.append(enCoding); String url = urlTem.toString(); System.out.println("url========="+url); try { Class.forName(driverName).newInstance(); dbConnection = DriverManager.getConnection(url, dbUserName, dbPassword); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return dbConnection; } /** * 执行专门的select操作,注意:在selectSql中的字段和fields中的个数、名称要保持一致 * * @param selectSql * 用于执行的select语句 * @param fields * 要选择的字段 * @return 含有Map的ArrayList,一条记录形成一个Map */ public ArrayList dbSelect(String selectSql, ArrayList fields) { ArrayList<Map> selectResult = new ArrayList<Map>(); Map<String, String> recordInfo; try { selectPro = dbConnection.createStatement();// 定义Statement对象 dbResultSet = selectPro.executeQuery(selectSql); while (dbResultSet.next()) { recordInfo = new HashMap<String, String>(); for (int i = 0; i < fields.size(); i++) if(dbResultSet.getString((String) fields.get(i))==null){ recordInfo.put((String) fields.get(i), ""); }else{ recordInfo.put((String) fields.get(i), new String(dbResultSet .getString((String) fields.get(i)).toString().getBytes("iso-8859-1"),"GBK" ));//这里的数据转码很重要!!! } selectResult.add(recordInfo); } System.out.println(selectResult); dbResultSet.close(); // 断开结果集 selectPro.close(); // 断开Statement对象 }catch (Exception e) { System.out.println("选择操作失败"); System.out.println("Sql = " + selectSql); e.printStackTrace(); } return selectResult; }// end dbSelect(...) }
2、HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/ORACLE/KEY_OraDb10g_home1下NLS_LANG改为:AMERICAN_AMERICA.US7ASCII
相关文章推荐
- 网站开发笔记:PHP oci连接Oracle中文乱码问题解决方案
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- 读写文件编码方式不一致导致文件乱码的解决方案
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- 安装oracle数据库后遇到数据入库为乱码的问题-由于oracle编码和系统编码不同导致
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- Windows下编码在Linux系统下中文乱码解决方案
- JavaWeb开发常见乱码处理之设置编码方式
- u盘在linux系统下文件只读方式的解决方案
- 定制Android系统开发之一——提供接口的方式
- Java连接Oracle数据库开发银行管理系统【一、需求篇】
- Python用cx_Oracle链接Oracle数据库中文乱码解决方案
- 王家林的81门一站式云计算分布式大数据&移动互联网解决方案课程第12门课程:Android系统完整训练:开发搭载Android系统的产品
- 【案例实战】餐饮企业分店財务数据分析系统解决方式:系统功能开发
- win7 64位系统 Oracle32bit + PL/SQL访问Orale服务,Oracle 11g的安装,中文乱码问题的解决
- 使用Struts进行JavaWeb开发的中文乱码问题解决方案
- PostgreSQL类似于Oracle的DG,大型数据库系统的高可靠解决方案
- Window系统下gvim编码中文乱码解决办法
- 连载:告诉你如何设计一个日访问量千万级别的系统,谈oracle的高级设计和开发(2)
- 架构师方向:基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发