數據庫采用MySQL(配置過程如有問題可以重啟tomcat試一下)
3.mysql服務器
http://dev.mysql.com/downloads/mysql/5.0.html
安裝時字符集選latin1(應與數據庫采用字符集相同)
安裝好數據庫后用以下命令看數據庫采用什么字符集:
help
二、依次安裝以上軟件
假設安裝后的路徑分別如下:
1.J2SE
C:/j2sdk1.4.2
2.Tomcat
C:/Program Files/Apache Software Foundation/Tomcat 4.1
3.mysql
C:/Program Files/MySQL/MySQL Server 5.0
三、配置
1.設置環境變量
在'我的電腦'上點右鍵,屬性->高級->環境變量,添加如下變量:
PATH=%PATH%;C:/j2sdk1.4.2/bin;C:/Program Files/MySQL/MySQL Server 5.0/bin
JAVA_HOME=C:/j2sdk1.4.2
CLASSPATH=C:/j2sdk1.4.2/lib/tools.jar;mysql-connector-java-5.0.5-bin.jar;mysql-connector-java-5.0.5-bin-g.jar
TOMCAT_HOME=C:/Program Files/Apache Software Foundation/Tomcat 4.1
2.jsp連接mysql設置
把
mysql-connector-java-5.0.5-bin.jar
mysql-connector-java-5.0.5-bin-g.jar
拷貝到C:/j2sdk1.4.2/lib
把
mysql-connector-java-5.0.5-bin.jar
拷貝到
C:/Program Files/Apache Software Foundation/Tomcat 4.1/common/lib
C:/Program Files/Apache Software Foundation/Tomcat 4.1/shared/lib
(千萬別復制mysql-connector-java-5.0.5-bin-g.jar)
四、JSP連接mysql測試
1.建立數據庫xia
打開命令行窗口,輸入:
mysql -h localhost -u root -p
create database xia;
use xia;
create table member(id int(8) primary key,name varchar(10));
insert into member values(1,'yang');
insert into member(name,id) values('xia',2);
(安全:為數據庫設置權限(用戶和密碼)
命令:grant all privileges on shujuku.* to test@localhost identified by “123456”;
當你執行完這個命令以后,只要你再以用戶名:test,密碼:123456登錄時你就只可以對shujuku這個數據庫操作,
這樣避開使用root,對數據庫的安全有很大幫助.)
2.把以下文件保存為index.jsp到C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/ROOT
----------------begin----------------------
//驅動程序名
String driverName="com.mysql.jdbc.Driver";
//數據庫用戶名
String userName="root";
//密碼
String userPasswd="";
//數據庫名
String dbName="xia";
//表名
String tableName="member";
//聯結字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
//獲得數據結果集合
ResultSetMetaData rmeta = rs.getMetaData();
//確定數據集的列數,亦字段數
int numColumns=rmeta.getColumnCount();
// 輸出每一個數據值
out.print("id");
out.print("|");
out.print("name");
out.print("
");
while(rs.next()) {
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(2));
out.print("
");
}
out.print("
");
out.print("數據庫操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
--------------------end------------------------
輸入http://localhost:8080測試
五、安裝網站程序
1)、拷貝文件
1.拷貝C:/Program Files/MySQL/MySQL Server 5.0/data/dataname
2.把
C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/ROOT/mywebroot
C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/ROOT/web-inf
目錄拷貝過去
3.建立
C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/ROOT/web-inf/classes
把用到的包拷貝到
C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/ROOT/web-inf/classes
目錄下面
2)、javabean安裝配置測試
建立自己的Bean:
1.文件名TestBean.java:
--------begin---------
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
---------end-------------
2 .編譯
將TestBean.java放在c:/test下,使用如下命令編譯:
C:/Test>javac TestBean.java
然后在c:/Test下會產生一個編譯后的bean文件:TestBean.class
3 .將TestBean.class文件剪切到 C:/Program Files/Apache Software Foundation/Tomcat 4.1/webapps/ROOT/WEB-INF/classes/test
4 .新建一個TestBean.jsp文件,文件內容為:
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is:
5 .好了,重啟Tomcat,啟動瀏覽器,輸入http://localhost:8080/TestBean.jsp
如果看到輸出Java bean name is: This is a test java bean.就說明編寫的Bean成功了。
六、問題解決
1.頁面亂碼
在jsp文件前面加
2.mysql返回結果亂碼
解決方法一:
連接mysql時(無論在從mysql讀還是取數據的情況),指定使用的編碼方式為gb2312,具體代碼如下
//裝載mysql-jdbc驅動
Class.forName("com.mysql.jdbc.Driver").newInstance();
//連接數據庫
Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?user=root&password=1&useUnicode=true&characterEncoding=gb2312" );
解決方法二:
如果方法一不行那么在方法一的基礎上對讀入的字符串進行強制編碼方式轉換。
代碼示例如下:
String name = rst.getString("name");
name= new String(name.getBytes("ISO-8859-1"),"gb2312");
注:代碼也可以為:String name =new String( rst.getString("name").getBytes("ISO-8859-1"),"gb2312"));其中rst為返回的resultset,ISO-8859-1為mysql默認的編碼方式,代碼的目的是把以ISO-8859-1的編碼轉換為gb2312編碼方式,這樣強制轉換,可以解決一部分問題,如果結合方法一,應該可以解決中文亂碼問題。