我寫的一個用JSP連接MySQL數據庫的代碼。
要正確的使用這段代碼,你需要首先在MySQL數據庫里創建一username表,表里面創建兩個字符型的字段,字段名分別為:uid,pwd,然后插入幾條測試數據。
以下用兩種方式來實現JSP連接MySql數據庫。
第一種方式,用JSP實現。
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
//**************************************
********* 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=true&characterEncoding=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")+"<br>");
}
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=true&characterEncoding=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文件源代碼如下:
<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"/><%
//以下幾項請自行修改
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")+"<br>");
}
//rs.close();
//stmt.close();
//conn.close();
DBConn.close();
%>
|