分享
 
 
 

在Jsp中用Bean和Servlet联合实现用户注册

王朝java/jsp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

本例需要的软件和运行环境:

1、Windows2000 Server操作系统

2、jdk1.4

3、JCreator2.5(java源码编辑调试器)

4、Macromedia JRun MX

5、Macromedia Dreamweaver MX(非必需)

6、MySQL数据库(最好安装MySQL Control Center)

一、数据库设计

用MySQL Control Center打开MySQL数据库,新建数据库shopping,在其下新建表tbl_user,其中各字段设置如下:

二、编写连接数据库bean:DBConn.java

//DBConn.java

//include required classes

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 = "shopping";

public String user = "sa";

public String pwd = "";

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

public boolean setDriver(String drv)

{

this.sql_driver = drv;

return true;

}

public String getDriver()

{

return this.sql_driver;

}

public boolean setUrl(String url)

{

this.sql_url = url;

return true;

}

public boolean setDBName(String dbname)

{

this.sql_DBName = dbname;

return true;

}

public String getDBName()

{

return this.sql_DBName;

}

public boolean setUser(String user)

{

this.user = user;

return true;

}

public String getUser()

{

return this.user;

}

public boolean setPwd(String pwd)

{

this.pwd = pwd;

return true;

}

public String getPwd()

{

return this.pwd;

}

public DBConn()

{

try{

Class.forName(sql_driver);//加载数据库驱动程序

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

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

}catch(Exception e){

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

}

}

//执行查询操作

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 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 void rs_close()

{

try{

this.rs.close();

}catch(SQLException e){

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

}

}

public void rs_deleteRow()

{

try{

this.rs.deleteRow();

}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 String rs_getString(String column)

{

try{

return this.rs.getString(column);

}catch(SQLException e){

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

return null;

}

}

//此方法用于获取大段文本,

//将其中的回车换行替换为

//输出到html页面

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;

}

}

//把str1字符串中的str2字符串替换为str3字符串

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 int rs_getInt(int column)

{

try{

return this.rs.getInt(column);

}catch(SQLException e){

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

return -1;

}

}

public boolean rs_next()

{

try{

return this.rs.next();

}catch(SQLException 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_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;

}

}

//main方法,调试用

public static void main(String args[])

{

try{

DBConn myconn = new DBConn();

//myconn.setDBName("shopping");

//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");

ResultSet rs = myconn.executeQuery("select * from tbl_user order by id desc limit 1");

//boolean hasData = myconn.hasData();

//System.out.println("has data:" + hasData);

//rs.first();

while (myconn.rs.next())

{

int id = myconn.rs_getInt("id") + 1;

System.out.print(id);

System.out.println(myconn.rs_getInt("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());

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有