我是ejb连接数据库怎么这么慢?

dinjian 2003-01-20 05:51:49
环境:
数据库:ms sql server 2000;
ejb容器:jboss

我在ejb的bean程序中有一个连接函数 getConntion(), 源代码如下:
public Connection getConntion()
{
System.out.print("call getConnection!");
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://192.168.0.4:1433;DatabaseName=ElectroNew";
String user= "sa";
String password= "";
Connection con= DriverManager.getConnection(url,user,password);
System.out.print("getConnection ok!");
return con;
}catch(Throwable e)
{
System.out.print("getConncetion error: " + e.getMessage());
return null;
}
}

sql server在192.168.0.4上,我这台机子的ip地址是192.168.0.111,局域网测试,每次都连上,就是太慢了,各位兄弟,这是什么原因?
...全文
38 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjmmml 2003-01-22
  • 打赏
  • 举报
回复
参考一下下面的,是一个朋友写的。
tomcat连接池的配置tomcat 下编辑server.xml <Context path="/site" docBase="site" debug="0" reloadable="true" > <Resource name="jdbc/SQLServerEMSDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/SQLServerEMSDB"> <parameter> <name>user</name> <value>sa</value> </parameter> <parameter> <name>sa</name> <value>sa</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>driverName</name> <value>jdbc:sqlserver://sqlserver:1433;DatabaseName=test;SelectMethod=cursor</value> </parameter> </ResourceParams> </Context>然后在程序中lookup即可

wjmmml 2003-01-22
  • 打赏
  • 举报
回复
都什么年代了还用DriverManager.getConnection 啊,这是可不好的方法,建议不要使用,用连接池和数据愿吧,这样效率比较高。给你点代码:
public class DBConnection implements Serializable{
protected Connection con=null;
private String url = "com.ibm.websphere.naming.WsnInitialContextFactory" ;
private String Dbs = "jdbc/DataSource" ;
public DBConnection() { }
DataSource ds = null;
public void dbOpen() throws java.lang.Exception{
try{
if (con == null || con.isClosed()) {
// create parameter list to access naming system
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, url);
// access naming system
Context context = new InitialContext(env);
// get DataSource factory object from naming system
ds = (DataSource)context.lookup(Dbs);
con = ds.getConnection();
System.out.println("DB OPEN");
} else {
System.out.println("OPENED DB");
}
} catch (Exception e){
System.out.println("数据源不存在");
}

}
maxtiger 2003-01-22
  • 打赏
  • 举报
回复
为什么不用连接池?
mefaintII 2003-01-22
  • 打赏
  • 举报
回复
有很多例子啊,jboss配置一下可以吧
我用的是weblogic……很简单的配置
dinjian 2003-01-20
  • 打赏
  • 举报
回复
to takecare(大厅):
ping 速度和拷文件的速度很快,网络应该没什么问题。

to takecare(大厅) && kofwr(搭补流二):
经理逼得太急,所以也没有查连接池的资料,一开始查到什么就用什么,jboss可以建立连接池吗?能的话怎么建立?能提供这一方面的资料吗?


kofwr 2003-01-20
  • 打赏
  • 举报
回复
别用这个原始的,用中间件提供的连接池...
takecare 2003-01-20
  • 打赏
  • 举报
回复
ping看看速度有多快。如果ping很快的话,考虑连接池吧,不是的话请升级网络和server

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧