jspjdbcmysql資料庫(jdbc支持的資料庫)

  • 1、怎麼用jsp連接mysql資料庫
  • 2、jsp怎樣用jdbc連接mysql資料庫
  • 3、jsp連接mysql資料庫的難點
  • 4、jsp怎麼連接mysql資料庫
  • 5、jsp中使用JDBC連接MySQL資料庫如何解決
  • 6、jsp頁面中怎麼導入jdbc連接mysql

一. 資料庫的連接和操作筆記:

1.初始化連接字元串

2. 發送請求連接

3.如果需要對資料庫進行操作,如查詢,添加,刪除,修改等,則發送資料庫操作請 求,成功就返回結果,不成功操作失敗

4. 不進行操作就關閉資料庫操作,以及關閉資料庫發送請求

二.配置環境

」工欲善其事必先利其器「 在配置之前必須準備好幾個必要的文件java 的jdk(我用的是1.5),Tomcat(我的是5.5) ,mysql(5.0),jdbc(mysql-connector-java-3.1.14.zip) 的驅動,當然還有Dreamweaver 等等必要工具。

第一件事情:安裝jdk 1.5版本,安裝tomcat,mysql,解壓jdbc到包(官方網站有下載,註冊一個就行)

第二件事情:配置jdk,配置tomcat,jdbc

jdbc的配置:我的解壓目錄是 I:\mysql-connector-java-3.1.14 裡面可以看到一個mysql-connector-java-3.1.14-bin.jar 這個jar 的文件。右鍵打開電腦屬性—–高級—環境變數—找到系統變數。。點擊CLASSPATH,進行」編輯「 加入I:\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar 這個路徑去,這裡說明的我是盤式i盤,jdbc可以隨便解壓到那個盤都行,指定路徑就是。

第二步:jdbc解壓包下 mysql-connector-java-3.1.14-bin.jar 這個文件放入到Tomcat安裝目錄下

Tomcat 5.5\common\lib

Tomcat 5.5\shared\lib

這兩個文件夾裡面。

基本上的工作就完成了。呵呵(當然這個要看網上的資料,這裡要自己重新寫一次 唉好苦啊,沒得抄)

基本工作準備好,找一個mysql 資料庫的界面操作 GUI軟體 名字為: navicat(這個很好用)打開mysql,測試一下自己的mysql 可不可以連通,可以的話那麼就可以新建一個資料庫test,一個表為mytest,欄位是id和myname(這個隨便也行)

工具:

mysql

jsp頁面中怎麼導入jdbc連接mysql如下:

 注意:一定要把mysql的環境變數配置到系統的環境變數中才可以,否則會連接失敗

1、jsp是java服務端動態網頁技術,主要應用於網頁構建,理論上講不應該在頁面中直接連資料庫。合理的做法是先構建一個java後端,然後在JAVA後端中通過jdbc連接sqlserver。

2、如果一定要在jsp頁面中連資料庫也是可以的。jsp中有專門的sql標籤可以連接資料庫進行操作,這是jstl的內容,需要導入相應的資料庫驅動包。

3、jsp的內容相對來說技術難度都不算特別高,學習起來還是比較容易的。

4、希望對你有幫助。

我寫的一個用JSP連接MySQL資料庫的代碼。

要正確的使用這段代碼,你需要首先在MySQL資料庫里創建一username表,表裡面創建兩個字元型的欄位,欄位名分別為:uid,pwd,然後插入幾條測試數據。

以下用兩種方式來實現JSP連接MySql資料庫。

第一種方式,用JSP實現。

%@ page contentType=”text/html; charset=gb2312″ language=”java”

import=”java.sql.*”%

%

//**************************************

********* JDBC_ODBC連接MySql資料庫,不需要設置數據源

*********************************/

//********** 資料庫連接代碼 開始 ******/

//以下幾項請自行修改

String server=”localhost”; //MYSQL 伺服器的地址

String dbname=”test”; //MYSQL 資料庫的名字

String user=”root”; //MYSQL 資料庫的登錄用戶名

String pass=”chfanwsp”; //MYSQL 資料庫的登錄密碼

String port=”3306″; //SQL Server 伺服器的埠號,默認為1433

//資料庫連接字元串

String url =”jdbc:mysql://”+server+”:”+port+”/”+dbname+”?user=”+user+

“password=”+pass+”useUnicode=truecharacterEncoding=GB2312”;

//載入驅動程序

Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();

//建立連接

Connection conn= DriverManager.getConnection(url);

//創建語句對象

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

// **** 資料庫連接代碼 結束 *******

String sql=”select * from username”;

ResultSet rs=stmt.executeQuery(sql);

//rs.first();

while(rs.next()){

out.print(“用戶名:”);

out.print(rs.getString(“uid”)+” 密碼:”);

out.println(rs.getString(“pwd”)+”

“);

}

rs.close();

stmt.close();

conn.close();

%

第二種方式,用JavaBean來實現。請看代碼:

DBConnMySql.java

編譯以後的Class文件應該放在WEB-INF\classes\conn目錄下。

package conn; //導入包

import java.sql.*; //導入資料庫操作的類

public class DBConnMySql //構造方法,初始化

{

private Connection conn; //連接對象

private Statement stmt; //語句對象

private ResultSet rs; //結果集對象

private String MySqldriver;//MYSQL Server驅動程序字元串

private String MySqlURL; //MYSQL Server連接字元串

//********************************

*用 org.gjt.mm.mysql.Driver 驅動

* 該方法取得連接所需各種參數,組成連接字元串,然後再建立連接

* server;dbname,user,pass,port 分別表示MYSQL 伺服器的地址,

* 資料庫,用戶名,密碼,埠

**********************************/

public Connection getConnToMySql(String server,String dbname,

String user,String pass,String port){

//MYSQl驅動程序

MySqldriver = “org.gjt.mm.mysql.Driver”;

MySqlURL = “jdbc:mysql://”; //連接字元串一部分

try{

//完整的連接字元串

MySqlURL =MySqlURL+server+”:”+port+”/”+dbname+

“?user=”+user+”password=”+pass+

“useUnicode=truecharacterEncoding=GB2312”;

Class.forName(MySqldriver);

conn = DriverManager.getConnection(MySqlURL);

}catch(Exception e){

System.out.println(“操作資料庫出錯,請仔細檢查”);

//System.err.println(e.getMessage());

}

return conn;

}

//關閉資料庫連接

public void close()

{

try{

//rs.close();

//stmt.close();

conn.close();

}catch(SQLException sqlexception){

sqlexception.printStackTrace();

}

}

}

這個文件只是實現了資料庫的連接,下面我們再寫一個測試文件。

就是用sql語句從資料庫里查詢出記錄,以驗證我們資料庫的連接是否成功。

connmysql.jsp文件源代碼如下:

%@ page contentType=”text/html; charset=gb2312″ language=”java”

import=”java.sql.*” %

%

//以下幾項請自行修改

String server=”localhost”; //MYSQL 伺服器的地址

String dbname=”test”; //MYSQL 資料庫的名字

String user=”root”; //MYSQL 資料庫的登錄用戶名

String pass=”chfanwsp”; //MYSQL 資料庫的登錄密碼

String port=”3306″; //SQL Server 伺服器的埠號,默認為1433

Connection conn=DBConn.getConnToMySql(server,dbname,user,pass,port);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

String sql=”select * from username”;

String sql1=”insert into username (uid,pwd) values(‘夢想年華’,’夢想年華’)”;

stmt.executeUpdate(sql1);

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()){

out.print(“用戶名:”);

out.print(rs.getString(“uid”)+” 密碼:”);

out.println(rs.getString(“pwd”)+”

“);

}

//rs.close();

//stmt.close();

//conn.close();

DBConn.close();

%

在index.jsp中輸入如下代碼,並配置相應mySQL資料庫數據

%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%

%@ page import=”java.sql.*” %

body

%

String driver = “com.mysql.jdbc.Driver”;

// URL指向要訪問的資料庫名test1

String url = “jdbc:mysql://127.0.0.1:3306/test”;

// MySQL配置時的用戶名

String user = “root”;

// Java連接MySQL配置時的密碼

String password = “111”;

try {

// 1 載入驅動程序

Class.forName(driver);

// 2 連接資料庫

Connection conn = DriverManager.getConnection(url, user, password);

// 3 用來執行SQL語句

Statement statement = conn.createStatement();

// 要執行的SQL語句

String sql = “select * from login”;

ResultSet rs = statement.executeQuery(sql);

String name = null;

String mima=null;

while (rs.next()) {

name = rs.getString(“userName”);

mima = rs.getString(“passWord”);

out.println(name+”\t”+mima);

}

rs.close();

conn.close();

} catch (ClassNotFoundException e) {

System.out.println(“Sorry,can`t find the Driver!”);

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

%

/body

12,這樣就運行成功了,對於出現8080埠號被佔用,可以採用如下的方法進行刪除對應的進程。

在命令提示符下,輸入netstat -aon | findstr 8080

找到對應的進程的PID,假設是7659 再輸入如下的命令

taskkill /pid 7659 /F

即可刪除對應的進程。

在項目lib中加入mysql的jar包,然後寫jdbc鏈接信息即可,如下提供多種鏈接方式希望對你有幫助

JDBC連接MySQL

載入及註冊JDBC驅動程序

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

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

JDBC URL 定義驅動程序與數據源之間的連接

標準語法:

protocol(主要通訊協議):subprotocol(次要通訊協議,即驅動程序名稱):data source identifier(數據源)

MySQL的JDBC URL格式:

jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][param2=value2]….

 

示例:jdbc:mysql://localhost:3306/sample_db?user=rootpassword=your_password

 

常見參數:

user                       用戶名

password                  密碼

autoReconnect                  聯機失敗,是否重新聯機(true/false)

maxReconnect              嘗試重新聯機次數

initialTimeout               嘗試重新聯機間隔

maxRows                   傳回最大行數

useUnicode                 是否使用Unicode字體編碼(true/false)

characterEncoding          何種編碼(GB2312/UTF-8/…)

relaxAutocommit            是否自動提交(true/false)

capitalizeTypeNames        數據定義的名稱以大寫表示

建立連接對象

String url=”jdbc:mysql://localhost:3306/sample_db?user=rootpassword=your_password”;

Connection con = DriverManager.getConnection(url);

建立SQL陳述式對象(Statement Object)

Statement stmt = con.createStatement();

執行SQL語句

executeQuery()

String query = “select * from test”;

ResultSet rs=stmt.executeQuery(query);

結果集ResultSet

while(rs.next())

{rs.getString(1);rs.getInt(2);}

executeUpdate()

String upd=”insert into test (id,name) values(1001,xuzhaori)”;

int con=stmt.executeUpdate(upd);

execute()

示例:

try

 

 

{

 

 

 

 

 

}

catch(SQLException sqle)

{

}

finally

{

}

 

Java類型和SQL類型 技術手冊P421

PreparedStatement(預編語句)

PreparedStatement stmt = conn.prepareStatement(“insert into test(id,name)values(?,?)”);

stmt.setInt(1,id);

stmt.setString(2,name);

註:一旦設定語句的參數值後,就可以多次執行改語句,直到調用clearParameters()方法將他清除為止

CallableStatement(預儲程序)技術手冊P430

JDBC2.0使用

ResultSet對象中的游標上下自由移動

Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

ResultSet rs=stmt.executeQuery(“select * from test”);

 

public Statement createStatement(int resultSetType,int resultSetConcuttency) throws SQLException

 

resultSetType

TYPE_FORWARD_ONLY            只能使用next()方法。

TYPE_SCROLL_SENSITIVE        可以上下移動,可以取得改變後的值。

TYPE_SCROLL_INSENSITIVE      可以上下移動。

resultSetConcuttency

CONCUR_READ_ONLY        只讀

CONCUR_UPDATABLE        ResultSet對象可以執行資料庫的新增、修改、和移除

 

直接使用ResultSet對象執行更新數據

新增數據

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery(“select * from test”);

uprs.moveToInsertRow();

uprs.updateInt(1,1001);

uprs.updateString(2,”許召日”);

uprs.insertRow;

更新數據

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery(“select * from test”);

uprs.last();

uprs.updateString(“name”,””);

uprs.updateRow;

刪除數據

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE);

ResultSet uprs=stmt.executeQuery(“select * from test”);

uprs.absolute(4);

uprs.deleteRow();

 

批處理

con.setAutoCommit(false); 關閉自動認可模式

Statement stmt=con.createStatement();

int[] rows;

stmt.addBatch(“insert into test values(1001,xuzhaori)”);

stmt.addBatch(“insert into test values(1002,xuyalin)”);

rows=stmt.executeBatch();

con.commit(); 沒有任何錯誤,執行批處理stmt.executeBatch();

 

JNDI-數據源(Data Source)與連接池(Connection Pool)

Tomcat的JDBC數據源設置 技術手冊P439

連接池工具-Proxool Var 0.8.3 技術手冊P446

設置web.xml

?xml version=”1.0″ encoding=”ISO-8859-1″?

!–?xml version=”1.0″ encoding=”GB2312″?–

 

web-app xmlns=””

xmlns:xsi=””

xsi:schemaLocation=””

version=”2.4″

….

servlet

servlet-nameServletConfigurator/servlet-name

servlet-classorg.logicalcobwebs.proxool.configuration.ServletConfigurator/servlet-class

 

init-param

param-namepropertyFile/param-name

param-valueWEB-INF/classes/Proxool.properties/param-value

/init-param

load-on-startup1/load-on-startup

/servlet

後端統計埠添加下列

servlet

servlet-nameAdmin/servlet-name

servlet-classorg.logicalcobwebs.proxool.admin.servlet.AdminServlet/servlet-class

/servlet

 

servlet-mapping

servlet-nameAdmin/servlet-name

url-pattern/Admin/url-pattern

/servlet-mapping

 

….

 

/web-app

 

配置Proxool.properties

jdbc-0.proxool.alias=JSPBook

jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver

jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/sample_db?user=rootpassword=browseruseUnicode=truecharacterEncoding=UTF-8

jdbc-0.proxool.maximum-connection-count=10

jdbc-0.proxool.prototype-count=4

jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE

jdbc-0.proxool.verbose=true

jdbc-0.proxool.statistics=10s,1m,1d    後端統計介面添加此行

jdbc-0.proxool.statistics-log-level=DEBUG

使用Proxool連接池

Connection con = DriverManager.getConnection(“proxool.JSPBook”);

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

String query = “SELECT * FROM employee”;

ResultSet rs = stmt.executeQuery(query);

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126919.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Think-ORM數據模型及資料庫核心操作

    本文主要介紹Think-ORM數據模型建立和資料庫核心操作。 一、模型定義 Think-ORM是一個開源的ORM框架,用於簡化在PHP應用中(特別是ThinkPHP)與關係資料庫之…

    編程 2025-04-27
  • 如何使用Python將CSV文件導入到資料庫

    CSV(Comma Separated Values)是一種可讀性高、易於編輯與導入導出的文件格式,常用於存儲表格數據。在數據處理過程中,我們有時需要將CSV文件導入到資料庫中進行…

    編程 2025-04-27
  • Python批量導入資料庫

    本文將介紹Python中如何批量導入資料庫。首先,對於數據分析和挖掘領域,資料庫中批量導入數據是一個必不可少的過程。這種高效的導入方式可以極大地提高數據挖掘、機器學習等任務的效率。…

    編程 2025-04-27
  • Activiti 6自動部署後不生成資料庫act_hi_*的解決方法

    本文將從多個方面詳細闡述Activiti 6自動部署後不生成資料庫act_hi_*的問題,並提供對應的代碼示例。 一、問題分析 在使用Activiti 6部署流程後,我們發現act…

    編程 2025-04-27
  • Python更新資料庫數據

    Python更新資料庫數據是一個非常實用的功能。在工作中,我們經常需要從外部獲取數據,然後將這些數據保存到資料庫中,或者對現有資料庫中的數據進行更新。Python提供了許多庫和框架…

    編程 2025-04-27

發表回復

登錄後才能評論