通過(guò)MySql數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序連接
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、竹山網(wǎng)站維護(hù)、網(wǎng)站推廣。
①driverClass=”com.mysql.jdbc.Driver”
②url=”jdbc:mysql://127.0.0.1:3306/mytest”
舉個(gè)例子
連接數(shù)據(jù)庫(kù)查詢表的相關(guān)語(yǔ)句:
Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mytest","root","");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from userinfo");
while(rs.next())
{
out.print("br用戶名:"+rs.getString("username")+"密碼:"+rs.getString("password"));
}
rs.close();
stmt.close();
conn.close();
我寫的一個(gè)用JSP連接MySQL數(shù)據(jù)庫(kù)的代碼。
要正確的使用這段代碼,你需要首先在MySQL數(shù)據(jù)庫(kù)里創(chuàng)建一username表,表里面創(chuàng)建兩個(gè)字符型的字段,字段名分別為:uid,pwd,然后插入幾條測(cè)試數(shù)據(jù)。
以下用兩種方式來(lái)實(shí)現(xiàn)JSP連接MySql數(shù)據(jù)庫(kù)。
第一種方式,用JSP實(shí)現(xiàn)。
%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*"%
%
//**************************************
********* 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:mysql://"+server+":"+port+"/"+dbname+"?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")+"
");
}
rs.close();
stmt.close();
conn.close();
%
第二種方式,用JavaBean來(lái)實(shí)現(xiàn)。請(qǐng)看代碼:
DBConnMySql.java
編譯以后的Class文件應(yīng)該放在WEB-INF\classes\conn目錄下。
package conn; //導(dǎo)入包
import java.sql.*; //導(dǎo)入數(shù)據(jù)庫(kù)操作的類
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: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("操作數(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ù)的連接,下面我們?cè)賹懸粋€(gè)測(cè)試文件。
就是用sql語(yǔ)句從數(shù)據(jù)庫(kù)里查詢出記錄,以驗(yàn)證我們數(shù)據(jù)庫(kù)的連接是否成功。
connmysql.jsp文件源代碼如下:
%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*" %
%
//以下幾項(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
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('夢(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")+"
");
}
//rs.close();
//stmt.close();
//conn.close();
DBConn.close();
%
一. 數(shù)據(jù)庫(kù)的連接和操作筆記:
1.初始化連接字符串
2. 發(fā)送請(qǐng)求連接
3.如果需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,如查詢,添加,刪除,修改等,則發(fā)送數(shù)據(jù)庫(kù)操作請(qǐng) 求,成功就返回結(jié)果,不成功操作失敗
4. 不進(jìn)行操作就關(guān)閉數(shù)據(jù)庫(kù)操作,以及關(guān)閉數(shù)據(jù)庫(kù)發(fā)送請(qǐng)求
二.配置環(huán)境
”工欲善其事必先利其器“ 在配置之前必須準(zhǔn)備好幾個(gè)必要的文件java 的jdk(我用的是1.5),Tomcat(我的是5.5) ,mysql(5.0),jdbc(mysql-connector-java-3.1.14.zip) 的驅(qū)動(dòng),當(dāng)然還有Dreamweaver 等等必要工具。
第一件事情:安裝jdk 1.5版本,安裝tomcat,mysql,解壓jdbc到包(官方網(wǎng)站有下載,注冊(cè)一個(gè)就行)
第二件事情:配置jdk,配置tomcat,jdbc
jdbc的配置:我的解壓目錄是 I:\mysql-connector-java-3.1.14 里面可以看到一個(gè)mysql-connector-java-3.1.14-bin.jar 這個(gè)jar 的文件。右鍵打開(kāi)電腦屬性-----高級(jí)---環(huán)境變量---找到系統(tǒng)變量。。點(diǎn)擊CLASSPATH,進(jìn)行”編輯“ 加入I:\mysql-connector-java-3.1.14\mysql-connector-java-3.1.14-bin.jar 這個(gè)路徑去,這里說(shuō)明的我是盤式i盤,jdbc可以隨便解壓到那個(gè)盤都行,指定路徑就是。
第二步:jdbc解壓包下 mysql-connector-java-3.1.14-bin.jar 這個(gè)文件放入到Tomcat安裝目錄下
Tomcat 5.5\common\lib
Tomcat 5.5\shared\lib
這兩個(gè)文件夾里面。
基本上的工作就完成了。呵呵(當(dāng)然這個(gè)要看網(wǎng)上的資料,這里要自己重新寫一次 唉好苦啊,沒(méi)得抄)
基本工作準(zhǔn)備好,找一個(gè)mysql 數(shù)據(jù)庫(kù)的界面操作 GUI軟件 名字為: navicat(這個(gè)很好用)打開(kāi)mysql,測(cè)試一下自己的mysql 可不可以連通,可以的話那么就可以新建一個(gè)數(shù)據(jù)庫(kù)test,一個(gè)表為mytest,字段是id和myname(這個(gè)隨便也行)
jsp連接mysql數(shù)據(jù)庫(kù)的操作方式。
1、在數(shù)據(jù)服務(wù)端安裝好mysql數(shù)據(jù)庫(kù),這個(gè)是必須的,在自己的ssh或者虛擬機(jī)上,數(shù)據(jù)mysql可以看到相關(guān)的提示,說(shuō)明安裝成功
2、我是用的是tomcat服務(wù)器,在這里需要安裝好java連接mysql的數(shù)據(jù)庫(kù)操作庫(kù)。我是用的jar包是:mysql-connector-java-3.1.14.tar.gz,大家可以在網(wǎng)上下載,或者,在官網(wǎng)上下載
3、把解包后的jar放到tomcat里面的lib文件夾下
4、在程序的代碼段里添加連接函數(shù)庫(kù)和庫(kù)函數(shù),就可以連接到mysql數(shù)據(jù)庫(kù)了
5、剩下的就是我們使用的時(shí)候調(diào)用這樣的數(shù)據(jù)了,在jsp里使用mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)
(1)把mysql的驅(qū)動(dòng)放到tomcat的lib中 驅(qū)動(dòng)是這個(gè)
解壓后在lib中有mysql-connector-java-5.1.6.jar.把這個(gè)文件放到tomcat的lib中5.X的在tomcat/common/lib 6.0在tomcat/lib
(2)建一個(gè)很簡(jiǎn)單的表person就兩個(gè)字段username和password,數(shù)據(jù)庫(kù)名和數(shù)據(jù)庫(kù)密碼換成你的就是了
create database ibatis;--創(chuàng)建數(shù)據(jù)庫(kù)
use ibatis;--使用數(shù)據(jù)庫(kù),以下表在該數(shù)據(jù)庫(kù)中
create table person(username varchar(20),password varchar(20));--創(chuàng)建person表
(3)創(chuàng)建index.jsp和regist.jsp
1:
index.jsp 提交表單頁(yè)面
%@ page pageEncoding="GBK"%
html
head
/head
body
form action="regist.jsp" method="post"
username :input type = "text" name="name"/
password :input type = "password" name="password"/
input type = "submit" value="提交"/
/form
/body
/html
2:regist.jsp //用戶注冊(cè)同時(shí)顯示所有用戶
%@ page contentType="text/html; charset=GBK" %
%@ page import="java.sql.*"%
body
center
%
request.setCharacterEncoding("GBK");
String uname=request.getParameter("name"); //從表單獲得
String pwd=request.getParameter("password"); //從表單獲得
String driver="com.mysql.jdbc.Driver"; //我用的是mysql官方驅(qū)動(dòng)你自己換一下就是了 在這里有
String url="jdbc:mysql://localhost:3306/ibatis?user=rootpassword=yanghao"; //這是數(shù)據(jù)庫(kù)連接地址Ibatis是數(shù)據(jù)庫(kù)名稱,user是用戶.password就是你的用戶名,根據(jù)實(shí)際情況你修改
String sql="INSERT INTO person (username,password) VALUES('"+uname+"','"+pwd+"')"; //把index.jsp提交的兩個(gè)數(shù)據(jù)插進(jìn)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)語(yǔ)句
Connection conn=null; //數(shù)據(jù)庫(kù)連接
Statement stmt=null;
ResultSet rs = null; //查詢結(jié)果
%
%
Class.forName(driver); //加載驅(qū)動(dòng)
conn=DriverManager.getConnection(url); //獲得連接
stmt=conn.createStatement();
stmt.execute(sql);//存入數(shù)據(jù)庫(kù)
rs=stmt.executeQuery("select * from person"); //查詢所有person語(yǔ)句
%
%
if(rs!=null){ //判斷以下
while(rs.next()){
String username=rs.getString(1);
String password=rs.getString(2);
%
table
tr
td%=username %/td
td%=password %/td
/tr
/table
%
//關(guān)閉數(shù)據(jù)庫(kù)連接,和開(kāi)始的順序是反的
rs.close();//關(guān)閉結(jié)果集
stmt.close();//關(guān)閉Statement
conn.close();//關(guān)閉數(shù)據(jù)庫(kù)連接
//ok完成了插入和查詢操作
}
}
%
/center
/body