javaweb中mysql數(shù)據(jù)庫連接步驟方法及其實(shí)例
一、直接連接,不封裝到工具類中,主要步驟:
先導(dǎo)包:mysql-connector-java-5.0.8-bin.jar(點(diǎn)擊跳轉(zhuǎn)到下載界面),放在WebRoot/WEB-INF/lib/下
1.加載驅(qū)動(dòng)//com.MySQL.jdbc.Driver
2.獲取連接 Connection對(duì)象
3.獲取用于向數(shù)據(jù)庫發(fā)送SQL的Statement對(duì)象
4.執(zhí)行sql,獲取數(shù)據(jù),解析數(shù)據(jù)
5.關(guān)閉連接,釋放資源
/*協(xié)議:子協(xié)議://主機(jī):端口/數(shù)據(jù)庫名*/
Stringurl="jdbc:mysql://localhost:3306/jdbctest";
//mysql數(shù)據(jù)庫的用戶名與密碼,安裝時(shí)自己設(shè)置,一般默認(rèn)為root
Stringuser="root";
Stringpassword="root";
Connectionconnection=null;
Statementstatement=null;
ResultSetresultSet=null;
try{
//1.加載驅(qū)動(dòng)//com.mysql.jdbc.Driver
/*
*DriverManager.registerDriver(new
*Driver());用這種方法會(huì)加載兩次驅(qū)動(dòng),也就是說會(huì)創(chuàng)建兩個(gè)drive對(duì)象
*/
Class.forName("com.mysql.jdbc.Driver");
//2.獲取連接
connection=DriverManager.getConnection(url,user,password);
//3.獲取用于向數(shù)據(jù)庫發(fā)送SQL的Statement對(duì)象
statement=connection.createStatement();
//4.執(zhí)行sql,獲取數(shù)據(jù)
resultSet=statement.executeQuery("SELECT*FROMusers;");
//解析數(shù)據(jù)
while(resultSet.next()){
intid=resultSet.getInt("id");
Stringname=resultSet.getString("name");
Stringpsd=resultSet.getString("password");
Stringemail=resultSet.getString("email");
Stringbirthday=resultSet.getString("birthday");
System.out.println(id+""+name+""+psd+""+email
+""+birthday);
}
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
//5.關(guān)閉連接,釋放資源
if(resultSet!=null){
try{
resultSet.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
resultSet=null;
}
if(statement!=null){
try{
statement.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
statement=null;
}
if(connection!=null){
try{
connection.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
connection=null;
}
/* 協(xié)議:子協(xié)議://主機(jī):端口/數(shù)據(jù)庫名 */
String url = "jdbc:mysql://localhost:3306/jdbctest";
// mysql數(shù)據(jù)庫的用戶名與密碼,安裝時(shí)自己設(shè)置,一般默認(rèn)為root
String user = "root";
String password = "root";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// 1.加載驅(qū)動(dòng)//com.mysql.jdbc.Driver
/*
* DriverManager.registerDriver(new
* Driver());用這種方法會(huì)加載兩次驅(qū)動(dòng),也就是說會(huì)創(chuàng)建兩個(gè)drive對(duì)象
*/
Class.forName("com.mysql.jdbc.Driver");
// 2.獲取連接
connection = DriverManager.getConnection(url, user, password);
// 3.獲取用于向數(shù)據(jù)庫發(fā)送SQL的Statement對(duì)象
statement = connection.createStatement();
// 4.執(zhí)行sql,獲取數(shù)據(jù)
resultSet = statement.executeQuery("SELECT * FROM users;");
// 解析數(shù)據(jù)
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.關(guān)閉連接,釋放資源
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;
}
}
二、將數(shù)據(jù)庫連接封裝成一個(gè)工具類
這樣做的好處是,在實(shí)際開發(fā)中,就能做到,改一處即可修改全局。
1.建一個(gè)名為db.properties的配置文件,放于src/
url=jdbc:mysql://localhost:3306/jdbctest username=root password=root driver=com.mysql.jdbc.Driver
2.工具類:
importjava.io.IOException;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.Properties;
publicclassJdbcUtil{
//私有靜態(tài)變量,用以讀取配置文件
privatestaticPropertiesconfig=newProperties();
static{
try{
//配置資源文件
config.load(JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));
//加載驅(qū)動(dòng)
Class.forName(config.getProperty("driver"));
}catch(IOExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
publicstaticConnectiongetConnection(){
Connectionconnection=null;
try{
connection=DriverManager.getConnection(config.getProperty("url"),config.getProperty("username"),config.getProperty("password"));
}catch(SQLExceptione){
e.printStackTrace();
}
returnconnection;
}
//用以關(guān)閉連接,釋放資源
publicstaticvoidreleaseConn(Connectionconnection,Statementstatement,
ResultSetresultSet){
if(resultSet!=null){
try{
resultSet.close();
}catch(SQLExceptione){
e.printStackTrace();
}
resultSet=null;
}
if(statement!=null){
try{
statement.close();
}catch(SQLExceptione){
e.printStackTrace();
}
statement=null;
}
if(connection!=null){
try{
connection.close();
}catch(SQLExceptione){
e.printStackTrace();
}
connection=null;
}
}
}
3.使用實(shí)例:
Connectionconnection=null;
Statementstatement=null;
ResultSetresultSet=null;
try{
//調(diào)用工具類中的靜態(tài)方法來獲取連接
connection=JdbcUtil.getConnection();
statement=connection.createStatement();
resultSet=statement.executeQuery("select*fromusers");
while(resultSet.next()){
intid=resultSet.getInt("id");
Stringname=resultSet.getString("name");
Stringpsd=resultSet.getString("password");
Stringemail=resultSet.getString("email");
Stringbirthday=resultSet.getString("birthday");
System.out.println(id+""+name+""+psd+""+email
+""+birthday);
}
}catch(Exceptione){
e.printStackTrace();
}finally{
//調(diào)用工具類中的靜態(tài)方法來關(guān)閉連接,釋放資源
JdbcUtil.releaseConn(connection,statement,resultSet);
}
希望本文可以對(duì)需要的朋友有幫助
相關(guān)文章
Spring boot項(xiàng)目部署到云服務(wù)器小白教程詳解
這篇文章主要介紹了Spring boot項(xiàng)目部署到云服務(wù)器小白教程詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
java啟動(dòng)如何設(shè)置JAR包內(nèi)存大小
這篇文章主要介紹了java啟動(dòng)如何設(shè)置JAR包內(nèi)存大小問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
java調(diào)用oracle分頁存儲(chǔ)過程示例
這篇文章主要介紹了java調(diào)用oracle分頁存儲(chǔ)過程,需要的朋友可以參考下2014-03-03
利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由示例代碼
Spring Cloud Zuul路由是微服務(wù)架構(gòu)的不可或缺的一部分,提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務(wù)。下面這篇文章主要給大家介紹了關(guān)于利用Spring Cloud Zuul實(shí)現(xiàn)動(dòng)態(tài)路由的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
SpringBoot項(xiàng)目中枚舉類型字段與前端和數(shù)據(jù)庫的交互方法
最近做的這個(gè)項(xiàng)目中,用到了大量的枚舉類,下面這篇文章主要給大家介紹了關(guān)于SpringBoot項(xiàng)目中枚舉類型字段與前端和數(shù)據(jù)庫的交互方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07

