日期:2014-05-20  浏览次数:20930 次

jdbc连接数据库,怎么都不行,哪里出错了?

请问是哪里出了问题呢?
------解决方案--------------------
你这代码写的,getConnection()返回null
------解决方案--------------------
try块儿写错了

m.getConnection返回null

conn.getConnection应该有trycatch的吧
------解决方案--------------------
引用:
Quote: 引用:

你这代码写的,getConnection()返回null

那是myeclipse中自己处理的,代码中出的是什么问题嘛

你的conn是null,哪来的conn.getConnection()?,把try{}放到getConnection()里面,返回conn
------解决方案--------------------
楼主是要把你取连接这块写到静态代码块中就可以了。
就是在try{}cache(){}外面包上static{}
------解决方案--------------------
教程中的方法throws异常了。你写的没有抛出异常,只能自己try了
------解决方案--------------------
以前练习的时候写过一个,可以参考一下。有错误的地方自己修改一下吧。


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

/**
 * MYSQL数据库连接
 * 
 * @author Rain
 * 
 */
public final class DBUtils {

private String url = null;
private String user = null;
private String password = null;
private static DBUtils instance = null;

private DBUtils() {
}

static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError("数据库驱动加载错误");
}
}

public Connection getConnection() throws IOExceptionSQLException {
Properties prop = new Properties();
InputStream istream = DBUtils.class.getClassLoader().getResourceAsStream(
"MySQLConfig.properties");
try {
prop.load(istream);
} catch (IOException e1) {
throw new IOException("数据库配置加载错误");
}

url = "jdbc:mysql://" + prop.getProperty("MySQL.Local") + ":"
+ prop.getProperty("MySQL.Port") + "/" + prop.getProperty("MySQL.Name")
+ "?characterEncoding=utf8";
user = prop.getProperty("MySQL.User");
password = prop.getProperty("MySQL.Password");

Connection conn = null;

try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
throw new SQLException("数据库连接错误" + e);
}
conn.setAutoCommit(false);

return conn;
}

public static DBUtils getInstance() {
if (instance == null) {
synchronized (DBUtils.class) {
if (instance == null) {
instance = new DBUtils();
}
}
}
return instance;
}

// 数据库连接释放
public void dispose(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (st != null)
st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null)
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}