jsp usebean mysql_jsp 结合 javabeans 操作 mysql 数据库(转!)

本文用jsp结合javabeans实现对mysql数据库的操作。

首先,请确定您已经安装以下软件:

1、Java 2 sdk 1.4

2、MySql数据库

3、Macromedia JRun(也可以使用其它jsp服务器)

4、Mysql Control Center(非必需)

5、文本编辑器(作者用的是EditPlus2)

在开始动手之前,我们要先明确先个问题:

问题一:如何用javabeans连接数据库

javabeans连结mysql数据库的核心代码如下:

Javabeans连结数据库核心代码:

Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql://localhost:3306/yourDataBase?user=username&password=password&useUnicode=true&characterEncoding=gb2312"; Connection conn= DriverManager.getConnection(url); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  ResultSet rs=stmt.executeQuery("select * from test");

其中"org.gjt.mm.mysql.Driver"是mysql的jdbc驱动。默认的是没有的,你可以到网上下载一个,解压后就可以使用。其中点操作符表示路径,即org\gjt\mm\mysql\Driver.class。当然,这个包里还会有其它的class,您可以自己看一下,如果需要的话,可以直接拿来用。在url中,yourDataBase是你的数据库的名字,username是数据库的访问名称,password是密码。后面的useUnicode=true&characterEncoding=gb2312是为了解决中文问题,这样从MySql中获取的即为中文字符。Rs即为执行查询select * from test后返回的结果集。

问题二:在jsp中如何调用javabeans

在jsp中,我们用

来调用javabeans。事实上,这相当于导入一个类DBConn,然后创建一个名为DBConnID的实例,我们可以直接用DBConnID.DBConn()调用类DBConn中的DBConn方法。这和面向对象编程中的所有其它方法都是一样的。

问题三:提交表单的编码问题

在jsp中,表单提交以后,如果我们不进行任何处理,那么写进数据库的会是乱码。在这里,我们用

String newname = new String(request.getParameter("newname").getBytes("ISO8859_1"));

即可解决此问题。

问题四:大段文本的换行问题

因为html不能正常显示大段文本的换行、回车,所以我们要在输出到html的时候将其中的回车、换行替换成html标签
。但是在java中,String类的replace方法只能替换单个字符。不过我们可以用StringBuffer类的replace方法来解决这个问题:

myStringBuffer.replace(int start, int end , String str);

其中start是要替换字符串的开始位置,end是要替换字符串的结束位置,str是用来替换的字符串。我们只要用字符串
替换原文本中的\r\n,就可以在网页中正确地输出了。

明确了这四个问题以后,我们就可以开始动手了。

一、准备MySql数据库

在MySql的test数据库中新建表tbl_test,共有两个字段id和name,其中id为int型,name为text型.

表tbl_test建好以后,在其中随便加入几条数据,以备测试用。

二、编写连接数据库的javabeans

用文本编辑器编写如下代码,将其保存为c:\j2sdk1.4.0\bin\DBConn.java。

DBConn.java//======================================

//include java class

//======================================

import java.sql.*;

//==========================================

//Define Class DBConn

//==========================================

public class DBConn

{

public String sql_driver = "org.gjt.mm.mysql.Driver";

public String sql_url = "jdbc:mysql://localhost:3306";

public String sql_DBName = "test";

public String user = "sa";

public String pwd = "";

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

public boolean DBConn()

{

try{

Class.forName(sql_driver).newInstance();

this.conn = DriverManager.getConnection(sql_url + "/" + sql_DBName + "?user=" + user + "&password=" + pwd + "&useUnicode=true&characterEncoding=gb2312");

this.stmt = this.conn.createStatement();

return true;

}catch(Exception e){

System.out.println(e.toString());

return false;

}

}

public ResultSet executeQuery(String strSql)

{

try{

this.rs = stmt.executeQuery(strSql);

return this.rs;

}catch(SQLException e){

System.out.println(e.toString());

return null;

}catch(NullPointerException e){

System.out.println(e.toString());

return null;

}

}

public boolean execute(String strSql)

{

try{

if(this.stmt.executeUpdate(strSql) == 0)

return false;

else

return true;

}catch(SQLException e){

System.out.println(e.toString());

return false;

}catch(NullPointerException e){

System.out.println(e.toString());

return false;

}

}

public boolean hasData()

{

try{

boolean has_Data = this.rs.first();

this.rs.beforeFirst();

return has_Data;

}catch(SQLException e){

System.out.println(e.toString());

return false;

}

}

public boolean rs_absolute(int row)

{

try{

this.rs.absolute(row);

return true;

}catch(SQLException e){

System.out.println(e.toString());

return false;

}

}

public void rs_afterLast()

{

try{

this.rs.afterLast();

}catch(SQLException e){

System.out.println(e.toString());

}

}

public void rs_beforeFirst()

{

try{

this.rs.beforeFirst();

}catch(SQLException e){

System.out.print(e.toString());

}

}

public boolean rs_first()

{

try{

this.rs.first();

return true;

}catch(SQLException e){

System.out.print(e.toString());

return false;

}

}

public boolean rs_next()

{

try{

return this.rs.next();

}catch(SQLException e){

System.out.println(e.toString());

return false;

}

}

public boolean rs_last()

{

try{

return this.rs.last();

}catch(SQLException e){

System.out.println(e.toString());

return false;

}

}

public boolean rs_previous()

{

try{

return this.rs.previous();

}catch(Exception e){

System.out.println(e.toString());

return false;

}

}

public void rs_deleteRow()

{

try{

this.rs.deleteRow();

}catch(SQLException e){

System.out.print(e.toString());

}

}

public String rs_getString(String column)

{

try{

return this.rs.getString(column);

}catch(SQLException e){

System.out.println(e.toString());

return null;

}

}

public String rs_getHtmlString(String column)

{

try{

String str1 = this.rs.getString(column);

String str2 = "\r\n";

String str3 = "

";

return this.replaceAll(str1,str2,str3);

}catch(SQLException e){

System.out.println(e.toString());

return null;

}

}

private static String replaceAll(String str1,String str2,String str3)

{

StringBuffer strBuf = new StringBuffer(str1);

int index=0;

while(str1.indexOf(str2,index)!=-1)

{

index=str1.indexOf(str2,index);

strBuf.replace(str1.indexOf(str2,index),str1.indexOf(str2,index)+str2.length(),str3);

index=index+str3.length();

str1=strBuf.toString();

}

return strBuf.toString();

}

public int rs_getInt(String column)

{

try{

return this.rs.getInt(column);

}catch(SQLException e){

System.out.println(e.toString());

return -1;

}

}

public void rs_close()

{

try{

this.rs.close();

}catch(SQLException e){

System.out.print(e.toString());

}

}

public static void main(String args[])

{

try{

DBConn myconn = new DBConn();

myconn.setDBName("test");

myconn.DBConn();

//myconn.execute("Insert Into tbl_test(id,name) values('10','shandaer')");

//myconn.execute("Update tbl_test set name='yyyyyyyyyyyy' where id=10");

//myconn.execute("Delete from tbl_test where id=1");

myconn.executeQuery("select * from tbl_test");

while (myconn.rs.next())

{

System.out.println(myconn.rs_getString("id") + myconn.rs_getString("name"));

System.out.println('\n' + myconn.rs_getHtmlString("name"));

System.out.println(myconn.rs.getString("name") + myconn.rs_getInt(1));

}

}catch(Exception e){

System.err.println(e.toString());

}}}

在Windows2000下,打开cmd窗口,转至c:\j2sdk1.4.0\bin目录下,键入命令:javac DBConn.java,如没有抛出任何例外,则编译成功。

如有例外抛出,请仔细检查程序代码。如果说找不到mysql的驱动,请将mysql的jdbc驱动org包放至bin目录下,那样就可以连接数据库了。

编译完成后,键入命令:java DBConn,如果有数据库中的数据被输出,说明javabeans已经编写成功。三、建立sqlmanage服务器

在JRun Administrator中,新建sqlmanage服务器。在根目录下分别新建文件index.jsp、add.jsp、del.jsp、edit.jsp、editpost.jsp,

同时将编译好的DBConn.class文件拷至sqlmanage\WEB-INF\classes\目录下。另外,我们需要到网上下载一个MySql的jdbc驱动,解压缩后将

org文件夹整个拷至DBConn.class所在目录下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值