假设表相同。
struts环境或jsp/servlet/javabean环境
有时候会存在子公司数据库服务器没有启动的情况(这个时候配置struts-config.xml好象要出错?)
struts环境或jsp/servlet/javabean环境
有时候会存在子公司数据库服务器没有启动的情况(这个时候配置struts-config.xml好象要出错?)
解决方案 »
- spring声明式事务问题,很纠结!
- 求高手帮助!
- java删除目录问题 急急急急急急急急急急
- 在JSP页面里,能点出来,运行的时候报错,在.java文件里能运行
- 需求报告,寻高手帮我解决一下,(十万火急)
- 有用过opencms的吗
- struts中的uri和location有什么区别
- Hibernate中查询的选择
- 新任Java Java Enterprise Open Source 斑竹,开帖散分,并提供中文版Struts in action
- 关于java的安装配置
- 刚看了j2ee without EJB,不愧是大师出品。请大家勿再受板桥里人蛊惑。
- 请问resin怎样连接DB2?请帮一下小弟吧!
或则就是自己编写javabean来连接的情况下怎么处理?
在对方服务器启动了情况下,不会报错,在对方服务器没有启动的情况下,会报错,我想知道是否这个是在struts-config.xml中配置的时候都会有的情况?另:在struts-config.xml中配置数据源的情况下,报错我如何提示错误信息?我现在的使用情况是:
本来我最开始的时候不想使用struts-config.xml的,自己建立了一个dbbean.java来连接集团公司的总部服务器,后来需求中要求要到子公司服务器中去获取数据,然后我想到了struts-config.xml,结果发现我新添加一个数据源配置后报错。
主要是我没有做过多个数据源的情况,原有的bean里面直接嵌入了连接信息,甚至我的实体bean里面都有对dbbean的实例化,所以现在感觉上有点难过,不知道如何处理了。
你原有的bean不是直接嵌入了连接信息么?
你只需要把你原来嵌入连接信息的地方替换为去读取properties文件中的内容就可。(struts中有这个东东,应该知道的)
不过会有一个由此产生的麻烦事情,就是你在程序刚开始的时候,需要去读一次总公司数据库的properties文件(main.properties),而每次去操作子公司数据库的时候,都需要去读相应的子公司数据库的properties文件(sub1.properties),操作完后又需要将重新读回总公司数据库的properties文件(main.properties)。给出读取properties文件的bean:
PropertiesReader.javapackage net.xxxxx.common.db;//这个自己改import java.io.FileInputStream;
import java.util.Properties;public class PropertiesReader {
protected static Properties props = new Properties(); public static void init(String fileName) throws Exception {
FileInputStream fis = new FileInputStream(fileName);
props.load(fis);
} public static String getProperty(String key) {
return props.getProperty(key);
} public static String getProperty(String key, String def) {
return props.getProperty(key, def);
}
}程序开始的时候:
String filename = application.getRealPath("/"+"WEB-INF/datasource/main.properties");//总公司数据库
net.xxxxx.common.db.PropertiesReader.init(filename);需要子公司数据的时候:
String filename = application.getRealPath("/"+"WEB-INF/datasource/sub1.properties");//子公司数据库
net.xxxxx.common.db.PropertiesReader.init(filename);
{......}//操作子公司数据库
filename = application.getRealPath("/"+"WEB-INF/datasource/main.properties");//返回总公司数据库
net.sharewin.common.db.PropertiesReader.init(filename); 假设你原有dbbean中嵌入的连接信息为:
driverClass = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
URL = "jdbc:microsoft:sqlserver://192.168.0.1:1433;DatabaseName=mybase";
userName = "sa";
password = "sa";
Class.forName(driverClass).newInstance();
conn = DriverManager.getConnection(URL, userName, password);修改后的dbbean中相应地方为:
driverClass = PropertiesReader.getProperty("DRIVE_CLASS");
URL = PropertiesReader.getProperty("URL");
userName = PropertiesReader.getProperty("USERNAME");
password = PropertiesReader.getProperty("PASSWORD");
Class.forName(driverClass).newInstance();
conn = DriverManager.getConnection(URL, userName, password);main.properties:
DRIVE_CLASS=com.microsoft.jdbc.sqlserver.SQLServerDriver
URL=jdbc:microsoft:sqlserver://192.168.0.1:1433;DatabaseName=mybase
USERNAME=sa
PASSWORD=sasub1.properties:
DRIVE_CLASS=com.microsoft.jdbc.sqlserver.SQLServerDriver
URL=jdbc:microsoft:sqlserver://192.168.0.2:1433;DatabaseName=mybase
USERNAME=sa
PASSWORD=sa