解决方案 »
- 关于Hibernate Session得问题
- 在JAVA类中如何用正则取得我想要的值
- JAVA项目承接和开发
- 求精通Spring2.x-企业应用开发详解 电子书
- 关于proxool数据源的问题
- 如何配置数据连接池,我按书上的做不行啊!
- httpclient 包或代码怎么获得啊,
- java中使用了SUN.MISC.BASE64Encoder编码,delphi如何与之产生一样的编码,请教高手
- 怎么解决java.sql.SQLException: I/O Error: Connection reset by peer: socket write error
- 学习JSP,是否还要学习HTML、DHTML、JAVASCRIPT、JAVA、JAVABEAN、SERVLET、STRUTS、JDBC、SQL、WEBSERVR等等呢?!如果是的,我就不学了
- mybatis无法操作数据库
- 数据库查询问题
Context initCtx = new javax.naming.InitialContext();// 初始化Context对象
Context envCtx = (Context) initCtx.lookup("java:comp/env"); // 获得数据源
DataSource ds = (DataSource) envCtx.lookup("jdbc/DbPool");
换成这样子,你再看看。
Context initCtx == new javax.naming.InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/DBPool");
// Context envCtx = (Context) initCtx.lookup("java:comp/env"); // 获得数据源
// DataSource ds = (DataSource) envCtx.lookup("jdbc/DbPool");
Context initCtx = new javax.naming.InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/DbPool");还是出现结果⑥那种情况,不过感谢你的关注。
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
......
at com.test.tool.DbPool.createConn(DbPool.java:20) // 第20行是这行:
conn = ds.getConnection();// 获得数据库连接
意味着之前的JNDI操作应该是没问题的。
主要问题就是连接3306端口失败。CMD命令行下,完整输入:
telnet localhost 3306
有反应么?
不用连接池,这个类中,修改为直接JDBC连接试试看,先排除Java自身环境因素。
private Connection conn;
private final String url = "jdbc:mysql://localhost:3306/db_status?characterEncoding=GB2312";
private final String userName = "root";
private final String password = "root"; public void createConn() {
try {
// Context initCtx = new javax.naming.InitialContext();// 初始化Context对象
// Context envCtx = (Context) initCtx.lookup("java:comp/env"); // 获得数据源
// DataSource ds = (DataSource) envCtx.lookup("jdbc/DbPool");
// Context initCtx = new javax.naming.InitialContext();
// DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/DbPool");
// conn = ds.getConnection();// 获得数据库连接
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,userName,password);
System.out.println("数据库连接成功!");
} catch (Exception e) {
System.out.println("数据库连接失败!");
e.printStackTrace();
}
}
...
按楼上说的那样就可以了,但没用上连接池。