1. 使用jdbc连接数据库步骤:
装载驱动DriverManger;
获取连接Connection;
获取Statement或者是Preparestatement
若是查询语句,还有ResultSet
关键之处,千万别忘了关闭各种资源啊,还有就是数据的异常也要谨慎处理,别单纯的打印下错误语句就行,是抛出去还是怎么样,都要想仔细。代码如下:
package com.study.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class JDBCUtils {
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new ExceptionInInitializerError(e); //异常必须被抛出
}
}
//private static String url = "jdbc:mysql://localhost:3306/testjdbc";
private static String url = "jdbc:mysql://localhost:3306/testjdbc?generateSimpleParameterMetadata=true";
private static String user = "root";
private static String password = "*********";
private JDBCUtils() {
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void free(ResultSet resultSet,Statement statement,Connection connection){
try{
if(resultSet != null){
resultSet.close();
}
}catch (Exception e) {
e.printStackTrace();
}finally{
try{
if(statement != null){
statement.close();
}
}catch (Exception e) {
e.printStackTrace();
}
finally{
if(connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
当加载类com.mysql.jdbc.Driver类时候,会执行其静态代码块:
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
// ~ Static fields/initializers
// ---------------------------------------------
//
// Register ourselves with the DriverManager
//
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}