求助,为什么我的数据库连不上??No suitable driver found for jdbc

qq_37414354 2017-01-29 05:37:53
package com.daily.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBUtil {
static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static String DB_URL = "jdbc:mysql://localhost/exercise";
static String USER = "root";
static String PASS = "123456";
static DataSource ds = null;
static {
try {
Context cxt = new InitialContext();
ds = (DataSource) cxt.lookup("java:comp/env/jdbc/mysql");
} catch (NamingException e) {
System.out.println("无法通过JNDI加载数据源");
}
}

public static void init() {
InputStream is = DBUtil.class.getResourceAsStream("/db.properties");
Properties pp = new Properties();
try {
pp.load(is);
} catch (IOException e) {
e.printStackTrace();
}
if(pp.getProperty("driver") != null && !pp.getProperty("driver").equals("")){
JDBC_DRIVER=pp.getProperty("driver");
}
if(pp.getProperty("url") != null && !pp.getProperty("url").equals("")){
DB_URL=pp.getProperty("url");
}
if(pp.getProperty("user") != null && !pp.getProperty("user").equals("")){
USER=pp.getProperty("user");
}
if(pp.getProperty("pass") != null && !pp.getProperty("pass").equals("")){
PASS=pp.getProperty("pass");
}
}

public static Connection getConnection() {
Connection conn = null;
try {
if (ds == null) {
init();
//问题就在这
conn =DriverManager.getConnection(DB_URL,USER,PASS);
} else {
conn = ds.getConnection();
}
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

public static void closeAll(ResultSet rs, PreparedStatement prst, Connection conn) {
try {
if (rs != null)
rs.close();
if (prst != null)
prst.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void closeAll(PreparedStatement prst, Connection conn) {
try {
if (prst != null)
prst.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
已上是连接数据库
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource "
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="root" password="123456"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/exercise"/>
已上是context.xml
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/exercise
user=root
pass=123456
上面是db.properties
数据库版本mysql-5.1.73-winx64
jar包:mysql-connector-java-5.1.7-bin和mysql-connector-java-5.1.17-bin两个都试过了
报的错误是:java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/exercise
at java.sql.DriverManager.getConnection(DriverManager.java:596)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.daily.util.DBUtil.getConnection(DBUtil.java:62)
at com.daily.dao.imp.UserDao.LeaderLogin(UserDao.java:53)
at com.daily.controller.LoginServlet.doPost(LoginServlet.java:65)
...全文
344 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
什么都不能 2017-01-30
  • 打赏
  • 举报
回复
你的驱动放到什么地方了?
qq_37414354 2017-01-30
  • 打赏
  • 举报
回复
引用 1 楼 hanpoyangtitan的回复:
你的驱动放到什么地方了?
在lib底下,build path已经解决了,不过还是说声谢谢,我没有把驱动放在jdkjre的ext文件夹里面

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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