新聞中心
P(Java Server Pages)是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),其更大的特點(diǎn)就是能夠生成由服務(wù)器端進(jìn)行處理的動(dòng)態(tài)網(wǎng)頁(yè)。在實(shí)際應(yīng)用中,P經(jīng)常需要和數(shù)據(jù)庫(kù)進(jìn)行交互,因此連接數(shù)據(jù)庫(kù)是P程序的一個(gè)基本要求。本文將以最常見(jiàn)的MySQL數(shù)據(jù)庫(kù)為例,介紹P如何連接MySQL數(shù)據(jù)庫(kù)。

步驟1:安裝MySQL數(shù)據(jù)庫(kù)
MySQL是一種常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù),在連接之前,我們需要保證我們的計(jì)算機(jī)上已經(jīng)安裝了MySQL數(shù)據(jù)庫(kù)系統(tǒng)。安裝過(guò)程不再贅述。
步驟2:創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表
為了模擬一個(gè)真實(shí)的場(chǎng)景,我們需要在MySQL數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)包含多條數(shù)據(jù)的表。我們可以通過(guò)如下SQL語(yǔ)句完成表的創(chuàng)建(假設(shè)我們的數(shù)據(jù)庫(kù)名稱(chēng)為testdb,表名稱(chēng)為testtable):
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE testtable (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
eml VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
向testtable表中插入三條數(shù)據(jù),如下所示:
INSERT INTO testtable (firstname, lastname, eml)
VALUES (‘Conan’, ‘McAurther’, ‘conan.mcaurthur@gml.com’);
INSERT INTO testtable (firstname, lastname, eml)
VALUES (‘Laura’, ‘Dern’, ‘laura.dern@gml.com’);
INSERT INTO testtable (firstname, lastname, eml)
VALUES (‘Bill’, ‘Gates’, ‘bill.gates@gml.com’);
步驟3:導(dǎo)入MySQL的JDBC驅(qū)動(dòng)
為了在P程序中能夠連接MySQL數(shù)據(jù)庫(kù),我們需要下載并導(dǎo)入MySQL的JDBC驅(qū)動(dòng)。您可以從官方網(wǎng)站 https://dev.mysql.com/downloads/connector/j/ ,下載適合您當(dāng)前MySQL版本的JDBC驅(qū)動(dòng)器。下載完成后,將其復(fù)制到您的項(xiàng)目中。
步驟4:編寫(xiě)P程序
接下來(lái),我們將編寫(xiě)一個(gè)簡(jiǎn)單的P程序,以連接MySQL數(shù)據(jù)庫(kù)并查詢testtable表中的數(shù)據(jù),如下所示:
P數(shù)據(jù)庫(kù)連接示例
<%
/* 定義數(shù)據(jù)庫(kù)連接屬性 */
String driverName = “com.mysql.jdbc.Driver”;
String url = “jdbc:mysql://localhost:3306/testdb”;
String user = “root”;
String password = “123456”;
/* 定義數(shù)據(jù)庫(kù)連接句柄 */
Connection conn = null;
try {
/* 加載JDBC驅(qū)動(dòng) */
Class.forName(driverName);
/* 創(chuàng)建數(shù)據(jù)庫(kù)連接 */
conn = DriverManager.getConnection(url, user, password);
/* 創(chuàng)建SQL語(yǔ)句 */
String sql = “SELECT * FROM testtable”;
/* 創(chuàng)建SQL語(yǔ)句執(zhí)行器 */
Statement stmt = conn.createStatement();
/* 執(zhí)行SQL查詢 */
ResultSet rs = stmt.executeQuery(sql);
/* 處理查詢結(jié)果 */
while(rs.next()) {
out.println(rs.getString(“id”) + “, “);
out.println(rs.getString(“firstname”) + “, “);
out.println(rs.getString(“l(fā)astname”) + “, “);
out.println(rs.getString(“eml”) + “, “);
out.println(rs.getString(“reg_date”) + “
“);
}
/* 關(guān)閉查詢結(jié)果和執(zhí)行器 */
rs.close();
stmt.close();
} catch(Exception e) {
e.printStackTrace();
} finally {
/* 關(guān)閉數(shù)據(jù)庫(kù)連接 */
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
%>
以上代碼的主要功能是連接MySQL數(shù)據(jù)庫(kù),并查詢testtable表中的數(shù)據(jù),將查詢結(jié)果輸出到網(wǎng)頁(yè)上。其中包含了以下主要的步驟:
1、初始化數(shù)據(jù)庫(kù)連接屬性,包括數(shù)據(jù)庫(kù)驅(qū)動(dòng)類(lèi)名、數(shù)據(jù)庫(kù)連接地址、用戶名和密碼。
2、加載MySQL JDBC驅(qū)動(dòng)程序。
3、建立數(shù)據(jù)庫(kù)連接。
4、定義執(zhí)行SQL語(yǔ)句的語(yǔ)句執(zhí)行器。
5、執(zhí)行SQL查詢,得到結(jié)果集(ResultSet)。
6、處理查詢結(jié)果集,輸出到網(wǎng)頁(yè)上。
7、關(guān)閉查詢結(jié)果和執(zhí)行器,釋放資源。
8、關(guān)閉數(shù)據(jù)庫(kù)連接,釋放資源。
通過(guò)以上步驟,我們就可以實(shí)現(xiàn)P和MySQL數(shù)據(jù)庫(kù)之間的連接。將以上代碼保存為example.jsp,放置在Tomcat服務(wù)器的webapps目錄下,啟動(dòng)Tomcat,然后在瀏覽器中訪問(wèn)http://localhost:8080/example.jsp,即可看到查詢結(jié)果。
:
本文介紹了如何通過(guò)一個(gè)P程序連接MySQL數(shù)據(jù)庫(kù)并查詢數(shù)據(jù)表。P是一種十分強(qiáng)大的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),通過(guò)學(xué)習(xí)本文所介紹的P連接MySQL數(shù)據(jù)庫(kù)的方法,您可以更好地應(yīng)用P技術(shù),在實(shí)際開(kāi)發(fā)中實(shí)現(xiàn)更加復(fù)雜的業(yè)務(wù)邏輯。
相關(guān)問(wèn)題拓展閱讀:
- 教你輕松應(yīng)對(duì)P連接MySQL數(shù)據(jù)庫(kù)問(wèn)題
- 如何在P中進(jìn)行數(shù)據(jù)庫(kù)連接
- jsp怎樣連接Oracle數(shù)據(jù)庫(kù)
教你輕松應(yīng)對(duì)P連接MySQL數(shù)據(jù)庫(kù)問(wèn)題
當(dāng)您面臨P連接MySQL數(shù)據(jù)庫(kù)問(wèn)題,你首先需要在MySQL數(shù)據(jù)庫(kù)里創(chuàng)建一username表,表里面創(chuàng)建兩個(gè)字符型的字段,字段名分別為:uid,pwd,然后插入幾條測(cè)試數(shù)據(jù)。
以下用兩種方式來(lái)實(shí)現(xiàn)P連接MySql數(shù)據(jù)庫(kù)
之一種方式,用P實(shí)現(xiàn):
%@ page contentType=”text/html;
charset=gb2312″ language=”java”
import=”java.sql.*”%
meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″
%//*******************************
****************
JDBC_ODBC連接MySql數(shù)據(jù)庫(kù),不需要設(shè)置數(shù)據(jù)源***********
**********************/
//********** 數(shù)據(jù)庫(kù)連接代碼 開(kāi)始 ******/
//以下幾項(xiàng)請(qǐng)自行修改String server=”localhost”;
//MYSQL 服務(wù)器的地址String dbname=”test”;
//MYSQL 數(shù)據(jù)庫(kù)的名字String user=”root”;
//MYSQL 數(shù)據(jù)庫(kù)的登錄用戶名String pass=”chfanwsp”;
//MYSQL 數(shù)據(jù)庫(kù)的登錄密碼String port=”3306″;
//SQL Server 服務(wù)器的端口號(hào),
默認(rèn)為1433//數(shù)據(jù)庫(kù)連接字符串
String url =”jdbc:
user=”+user+”passWord=”+pass+”useUnicode
=truecharacterEncoding=GB2312″;
//加載驅(qū)動(dòng)程序Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();
//建立連接Connection conn= DriverManager.getConnection(url);
//創(chuàng)建語(yǔ)句對(duì)象Statement stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// **** 數(shù)據(jù)庫(kù)連接代碼 結(jié)束 ******* 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”)+”br”);}
rs.close();stmt.close();conn.close();%
第二種方式,用JavaBean來(lái)實(shí)現(xiàn):
DBConnMySql.java編譯以后的Class文件應(yīng)該放在Web-INF\classes\conn目錄下。
package conn; //導(dǎo)入包import java.sql.*;
//導(dǎo)入數(shù)據(jù)庫(kù)操作的類(lèi)public class DBConnMySql
//構(gòu)造方法,初始化{private Connection conn;
//連接對(duì)象private Statement stmt;
//語(yǔ)句對(duì)象private ResultSet rs;
//結(jié)果集對(duì)象private String MySqldriver;
//MYSQL Server驅(qū)動(dòng)程序字符串private String MySqlURL;
//MYSQL Server連接字符串//*********************************
用 org.gjt.mm.mysql.Driver 驅(qū)動(dòng)
* 該方法取得連接所需各種參數(shù),組成連接字符串,
然后再建立連接* server;dbname,user,pass,port
分別表示MYSQL 服務(wù)器的地址,
* 數(shù)據(jù)庫(kù),用戶名,密碼,端口
**********************************/
public Connection getConnToMySql
(String server,String dbname,String user,String pass,String port)
{//MYSQl驅(qū)動(dòng)程序MySqldriver = “org.gjt.mm.mysql.Driver”;
MySqlURL = “jdbc:
//連接字符串一部分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
(“操作數(shù)據(jù)庫(kù)出錯(cuò),請(qǐng)仔細(xì)檢查”);
//System.err.println(e.getMessage());}return conn;}
//關(guān)閉數(shù)據(jù)庫(kù)連接public void close(){try{//rs.close();
//stmt.close();conn.close();}catch(SQLException
sqlexception){sqlexception.printStackTrace();}}}
這個(gè)文件只是實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的連接,下面再寫(xiě)一個(gè)測(cè)試文件,就是用SQL語(yǔ)句從數(shù)據(jù)庫(kù)里查詢出記錄,以驗(yàn)證我們數(shù)據(jù)庫(kù)的連接是否成功。
connmysql.jsp文件源代碼如下:
meta http-equiv=”Content-Type” content=”text/html;
charset=gb2312″%@ page contentType=”text/html;
charset=gb2312″ language=”java” import=”java.sql.*” %
jsp:useBean id=”DBConn” scope=”page” class=”conn.DBConnMySql”/
% //以下幾項(xiàng)請(qǐng)自行修改String server=”localhost”;
//MYSQL 服務(wù)器的地址String dbname=”test”;
//MYSQL 數(shù)據(jù)庫(kù)的名字String user=”root”;
//MYSQL 數(shù)據(jù)庫(kù)的登錄用戶名String pass=”chfanwsp”;
//MYSQL 數(shù)據(jù)庫(kù)的登錄密碼String port=”3306″;
//SQL Server 服務(wù)器的端口號(hào),默認(rèn)為1433Connection
conn=DBConn.getConnToMySql
(server,dbname,user,pass,port);
Statement stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ON);
String sql=”select * from username”;
String sql1=”insert into username (uid,pwd) values
(‘夢(mèng)想年華’,’夢(mèng)想年華’)”;stmt.executeUpdate(sql1);
ResultSet rs=stmt.executeQuery(sql);while(rs.next())
{out.print(“用戶名:”);out.print(rs.getString(“uid”)+” 密碼:”);
out.println(rs.getString(“pwd”)+”br”);}
//rs.close();//stmt.close();//conn.close();DBConn.close();%
如何在P中進(jìn)行數(shù)據(jù)庫(kù)連接
很多數(shù)據(jù)庫(kù)系統(tǒng)帶有JDBC驅(qū)動(dòng)程序,Java程序就通過(guò)JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行查詢敏嫌告、提取數(shù)據(jù)等等操作。Sun公司還開(kāi)發(fā)了JDBC-ODBC bridge,用此技術(shù)Java程序就可以訪問(wèn)帶有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù),目前大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都帶有ODBC驅(qū)動(dòng)程序,所以Java程序能訪問(wèn)諸如Oracle、Sybase、MS SQL Server和MS Access等數(shù)據(jù)庫(kù)。下面介紹如何用Access實(shí)現(xiàn)一個(gè)動(dòng)態(tài)FAQ(常見(jiàn)問(wèn)題及答案)網(wǎng)站。首先建立一個(gè)Access數(shù)據(jù)庫(kù)橋明faq.mdb,其中的表faqs有字段id(自動(dòng)增量型,并設(shè)為主關(guān)鍵字)、subject(文字型,長(zhǎng)度200)、answers(備注者李型)。這個(gè)表中可以存放一些編程知識(shí)的常見(jiàn)問(wèn)題及答案, 然后,在Control Panel(控制面板)的ODBC Datasource模塊中加入System DSN,取名faq,并指向faq.mdb。 創(chuàng)建一個(gè)JavaBean,名為faq.java,并保存在jswdk-1.0.1webpagesWEB-INFjspeans est目錄下。faq.java 的內(nèi)容如下:
jsp怎樣連接Oracle數(shù)據(jù)庫(kù)
輔助類(lèi):
package dao;
import java.util.*;
import java.sql.*;
public class BaseDao {
public static final String DRIVER=”com.microsoft.sqlserver.jdbc.SQLServerDriver”;
public static final String URL=”jdbc:
public static final String USER=”sa”;
public static final String PASS=”sa”;
public Connection connection=null;
public PreparedStatement preparedStatement=null;
public ResultSet resultSet=null;
//獲得連接
public void getConnection(){
try {
Class.forName(DRIVER);//注冊(cè)驅(qū)動(dòng)
try {
connection=DriverManager.getConnection(URL, USER, PASS);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//關(guān)閉連接
public void closeAll(){
try {
if(resultSet!=null){resultSet.close();}
if(preparedStatement!=null){preparedStatement.close();}
if(connection!=null){connection.close();}
} catch (SQLException e) {
e.printStackTrace();
}
}
//執(zhí)行SQL語(yǔ)句
public int executeSQL(String sql,String param){
int result=0;
getConnection();
try {
preparedStatement=connection.prepareStatement(sql);
if(param!=null){
for(int i=0;i
“);
out.print(“”+”Empno”+””);
out.print(“”+”Ename”+””);
out.print(“”+”Job”+””);
out.print(“”+”Mgr”+””);
out.print(“”+”hiredate”+””);
out.print(“”+”Sal”+””);
out.print(“”+”Comm”+””);
out.print(“李御”+”Deptno”+””);
while(rs.next()){
out.print(“”+rs.getString(1)+””);
out.print(“”+rs.getString(2)+””);
out.print(“”+rs.getString(3)+””);
out.print(“乎擾銀”+rs.getString(4)+””);
out.print(“”+rs.getString(5)+””);
out.print(“”+rs.getString(6)+””);
out.print(“”+rs.getString(7)+””);
out.print(“”+rs.getString(8)+””);
}
out.print(“”);
rs.close();
stmt.close();
conn.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
%>
配置數(shù)據(jù)源,使用jdbc連
jsp數(shù)據(jù)庫(kù)連接樣例的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于jsp數(shù)據(jù)庫(kù)連接樣例,P如何連接數(shù)據(jù)庫(kù)?看這個(gè)樣例!,教你輕松應(yīng)對(duì)P連接MySQL數(shù)據(jù)庫(kù)問(wèn)題,如何在P中進(jìn)行數(shù)據(jù)庫(kù)連接,jsp怎樣連接Oracle數(shù)據(jù)庫(kù)的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專(zhuān)注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
文章名稱(chēng):P如何連接數(shù)據(jù)庫(kù)?看這個(gè)樣例!(jsp數(shù)據(jù)庫(kù)連接樣例)
標(biāo)題URL:http://www.dlmjj.cn/article/djigehs.html


咨詢
建站咨詢
