javaweb中mysql數據庫連接方法

一、直接連接,不封裝到工具類中,主要步驟:

先導包:mysql-connector-java-5.0.8-bin.jar(點擊跳轉到下載界面),放在WebRoot/WEB-INF/lib/下

  1.加載驅動//com.mysql.jdbc.Driver

  2.獲取連接 Connection對象

  3.獲取用於向數據庫發送SQL的Statement對象
 
  4.執行sql,獲取數據,解析數據
 
  5.關閉連接,釋放資源

                /* 協議:子協議://主機:端口/數據庫名 */
		String url = "jdbc:mysql://localhost:3306/jdbctest";

		// mysql數據庫的用戶名與密碼,安裝時自己設置,一般默認爲root
		String user = "root";
		String password = "root";

		Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;
		try {
			// 1.加載驅動//com.mysql.jdbc.Driver
			/*
			 * DriverManager.registerDriver(new
			 * Driver());用這種方法會加載兩次驅動,也就是說會創建兩個drive對象
			 */
			Class.forName("com.mysql.jdbc.Driver");
			// 2.獲取連接
			connection = DriverManager.getConnection(url, user, password);

			// 3.獲取用於向數據庫發送SQL的Statement對象
			statement = connection.createStatement();

			// 4.執行sql,獲取數據
			resultSet = statement.executeQuery("SELECT * FROM users;");

			// 解析數據
			while (resultSet.next()) {
				int id = resultSet.getInt("id");
				String name = resultSet.getString("name");
				String psd = resultSet.getString("password");
				String email = resultSet.getString("email");
				String birthday = resultSet.getString("birthday");

				System.out.println(id + " " + name + " " + psd + " " + email
						+ " " + birthday);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {  

                        //5.關閉連接,釋放資源
			if (resultSet != null) {
				try {
					resultSet.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				resultSet = null;
			}

			if (statement != null) {
				try {
					statement.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				statement = null;
			}

			if (connection != null) {
				try {
					connection.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				connection = null;
			}
		}

二、將數據庫連接封裝成一個工具類

這樣做的好處是,在實際開發中,就能做到,改一處即可修改全局。

1.建一個名爲db.properties的配置文件,放於src/

url=jdbc:mysql://localhost:3306/jdbctest
username=root
password=root
driver=com.mysql.jdbc.Driver

2.工具類:

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

public class JdbcUtil {
	
	//私有靜態變量,用以讀取配置文件
	private static Properties config=new Properties();
	
	static{
		try {
			//配置資源文件
			config.load(JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));
			
			//加載驅動
			Class.forName(config.getProperty("driver"));
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static  Connection getConnection(){
		Connection connection=null;
		try {
			connection=DriverManager.getConnection(config.getProperty("url"),config.getProperty("username"),config.getProperty("password"));
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return connection;
	}
	//用以關閉連接,釋放資源
	public static void releaseConn(Connection connection, Statement statement,
			ResultSet resultSet) {
		if(resultSet!=null){
			try {
				resultSet.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			resultSet=null;
		}
		
		if(statement!=null){
			try {
				statement.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			statement=null;
		}
		
		if(connection!=null){
			try {
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			connection=null;
		}
	}
	

}
3.使用實例:

                Connection connection = null;
		Statement statement = null;
		ResultSet resultSet = null;
		try {
			// 調用工具類中的靜態方法來獲取連接
			connection = JdbcUtil.getConnection();
			statement = connection.createStatement();
			resultSet = statement.executeQuery("select * from users");
			while (resultSet.next()) {
				int id = resultSet.getInt("id");
				String name = resultSet.getString("name");
				String psd = resultSet.getString("password");
				String email = resultSet.getString("email");
				String birthday = resultSet.getString("birthday");

				System.out.println(id + " " + name + " " + psd + " " + email
						+ " " + birthday);

			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 調用工具類中的靜態方法來關閉連接,釋放資源
			JdbcUtil.releaseConn(connection, statement, resultSet);
		}
	}



發佈了42 篇原創文章 · 獲贊 135 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章