程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP連接Mysql數據庫詳解與實例

JSP連接Mysql數據庫詳解與實例

編輯:關於JSP

1. 准備工作
好了,第一步是下載JDBC驅動,我們可以去http://dev.mysql.com/downloads/connector/j /3.1.html下載。目前最新版本的JDBC驅動版本為3.1.10 。下載文件為:mysql-connector-java-3.1.10.zip。直接解壓即可。我們只需要mysql-connector-java- 3.1.10-bin.jar文件和mysql-connector-java-3.1.10-bin-g.jar文件,把那兩個文件放在某個地方,我們可以放在安裝目錄(如:C:j2sdklib)裡。下一步就是設置環境變量,設置classpath的值為:

.;C:j2sdklib ools.jar;
C:j2sdklibmysql-connector-java-3.1.10-bin.jar;
C:j2sdklibmysql-connector-java-3.1.10-bin-g.jar

配置完環境變量後還有很重要一步就是為JSP連接數據庫配置驅動,這個很簡單,就是把mysql-connector-java-3.1.10- bin.jar拷到下列文件夾裡就行了(假設你的Tomcat裝在C盤跟目錄下:C:Tomcat 5.0)

C:Tomcat 5.0commonlib


2. 建立數據庫
關於下載及安裝Mysql數據庫可以參閱:http://www.numb1.com/com/php/phpsetup.htm

下一步就是建立數據庫,首先從CMD(即DOS)進入mysql,新建一數據庫,命令如下:
mysql> create database numb1;

進入新建的數據庫:
mysql> use numb1

新建一表格:
mysql> CREATE TABLE `lyb` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) default NULL,
`mail` varchar(30) default NULL,
`qq` varchar(15) default NULL,
`txt` text,
PRIMARY KEY (`id`)
);

插入數據
mysql> insert into lyb values(,奶油,[email protected],191106245,你好啊,給你留言,呵呵);
mysql> insert into lyb values(,樂凱,[email protected],11225032,我也來說兩句);

然後
mysql> exit
C:> exit
就OK了

3. 連接數據庫
下面一步也就是本文最精彩部分,前面我們所做的都是為下一步准備的,那就是連接數據庫,可以把下列代碼村為*.jsp文件,放到TOMCAT運行看看結果

<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage=""%>
<center><b>如果您看到下面表格內的內容,就說明連接數據庫成功!</b>< /center><br><br>
<table width="720" border="1" align="center" cellspacing="0">
<tr>
<th>ID</th>
<th>昵稱</th>
<th>E-mail</th>
<th>QQ</th>
<th>留言內容</th>
</tr>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance(); //org.gjt.mm.mysql.Driver
String u ="jdbc:mysql://localhost/numb1?user=root&password=";//useUnicode=true&characterEncoding=gb2312";
java.sql.Connection con = java.sql.DriverManager.getConnection(u);
java.sql.Statement statement =con.createStatement();
String sql="select * from lyb";
java.sql.ResultSet rs = statement.executeQuery(sql);

while(rs.next()) {%>
<tr>
<td><div align="center"><%=rs.getString(1)%> </div></td>
<td><div align="center"><%=rs.getString(2)%> </div></td>
<td><div align="center"><%=rs.getString(3)%> </div></td>
<td><div align="center"><%=rs.getString(4)%> </div></td>
<td><div align="center"><%=rs.getString(5)%> </div></td>
</tr>
<%}%> </table>
<%out.print("<br><br><center>數據庫操作成功</center>");%>
<%
rs.close();
statement.close();
con.close();
%>

簡單說明幾個地方
Class.forName("com.mysql.jdbc.Driver").newInstance(); //org.gjt.mm.mysql.Driver
com.mysql.jdbc.Driver可以替換為org.gjt.mm.mysql.Driver
String u ="jdbc:mysql://localhost/numb1?user=root&password=";

確認你的數據庫名為numb1,數據庫用戶名為:root(系統默認)數據庫密碼為空

數據庫連接到這裡就結束了。還有個問題就是當你運行上面的程序,運行結果出現的可能是亂碼,著是由於JAVA的編碼與Mysql有所差別所致,我們可以采用下列方法解決。

4.亂碼的處理
第一種方法:
修改String u ="jdbc:mysql://localhost/numb1?user=root&password="為:String u ="jdbc:mysql://localhost/numb1?user=root&password=&useUnicode=true&characterEncoding=gb2312";
如果MySQL版本是4.1以上的話,“useUnicode=true&characterEncoding=gb2312”加不加都可以,如果不能解決問題的話我們就采用第二中方法。

第二種方法:
先定義一函數
<%!
public String getStr(String s){
String str=s;
try{
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e){return null;}
}
%>
我們把從數據庫裡所讀取的數據通過此函數處理一下代碼如下:

<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage=""%>
<%!
public String getStr(String s){
String str=s;
try{
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e){return null;}
}
%><center><b>如果您看到下面表格內的內容,就說明連接數據庫成功!</b>< /center><br><br>
<table width="720" border="1" align="center" cellspacing="0">
<tr>
<th>ID</th>
<th>昵稱</th>
<th>E-mail</th>
<th>QQ</th>
<th>留言內容</th>
</tr>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance(); //org.gjt.mm.mysql.Driver
String u ="jdbc:mysql://localhost/numb1?user=root&password=";//useUnicode=true&characterEncoding=gb2312";
java.sql.Connection con = java.sql.DriverManager.getConnection(u);
java.sql.Statement statement =con.createStatement();
String sql="select * from lyb";
java.sql.ResultSet rs = statement.executeQuery(sql);

好了到這裡就徹底結束了,如果還是無法正常顯示的話,請仔細檢查其他設置。或查閱相關資料。

留言板下(薦):http://www.numb1.com/download/download.php?id=jm1

while(rs.next()) {%>
<tr>
<td><div align="center"><%=getStr(rs.getString(1))%> </div></td>
<td><div align="center"><%=getStr(rs.getString(2))%> </div></td>
<td><div align="center"><%=getStr(rs.getString(3))%> </div></td>
<td><div align="center"><%=getStr(rs.getString(4))%> </div></td>
<td><div align="center"><%=getStr(rs.getString(5))%> </div></td>
</tr>
<%}%> </table>
<%out.print("<br><br><center>數據庫操作成功</center>");%>
<%
rs.close();
statement.close();
con.close();
%>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved