JDBC — 说白了就是Java与DataBase的connectivity。只有正确建立了与数据库的联系,我们才能通过Java去操作数据库。那么如何与数据库建立联系?我们需要在我们的方法中写出以下几步。

//1.加载class文件到方法区 格式:Class.forName(“className”)

Class.forName(“com.mysql.jdbc.Driver”);

//2.连接到数据库 DriverManager.getConnection(“jdbc:mysql://IP:Port/DBName”,”username”,”password”)

//显而易见 getConnection 方法会返回一个 Connection类型对象

Connection conn=DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/mydb”, “root”, “123456”);

//3.创建执行sql语句的对象Statement

//createStatement方法创建一个执行SQL语句的对象 返回一个Statement类型的对象

Statement statement = conn.createStatement();

//4.如果要执行sql查询语句,需要调用的是executeQuery()方法,它返回的是一个ResultSet类型的结果集对象。(增删改使用executeUpdate()方法返回一个int整型)

ResultSet rs = statement.executeQuery(“select*from table”);

//最后在我们的操作完成后别忘了依次调用close()方法将其关闭

rs.close();
statement.close();
conn.close();

那么问题来了,是不是我们每次建立数据库连接是不是都要将上述步骤写一遍?当然不是,我们完全可以将以上代码封装成一个自己的工具类,使用的时候直接调用我们自己写的方法就好啦。方法如下():

1.
先写好相关数据库信息的properties文件

conn1=com.mysql.jdbc.Driver
url1=jdbc:mysql://127.0.0.1:3306/mydb2
user1=root
psw1=123456

2.

代码部分

package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
public class DBUtil {

private static String conn;
private static String url;
private static String user;
private static String psw;


static{
    ResourceBundle rb = ResourceBundle.getBundle("dbutil");
    conn = rb.getString("conn1");
    url = rb.getString("url1");
    user = rb.getString("user1");
    psw = rb.getString("psw1");
    try {
        Class.forName(conn);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

public static Connection getConnection () throws SQLException{

    return DriverManager.getConnection(url,user,psw);


}


public static void closeAll(Connection conn,Statement statement,ResultSet rs){

    if(rs!=null){
        try {
            rs.close();
        } catch (SQLException e) {

            e.printStackTrace();
        }
    }
    if(statement!=null){
        try {
            statement.close();
        } catch (SQLException e) {

            e.printStackTrace();
        }
    }
    if(conn!=null){
        try {
            conn.close();
        } catch (SQLException e) {

            e.printStackTrace();
        }
    }
}

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注