|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。js|教程JavaServerPages+JavaBeans的数据库操纵使用
下面已讲了一个复杂的JavaBean使用的计数器例子,固然在实践程序过程当中,触及的更多的仍是和数据库相干的操纵,以是在这一节我们将重点论述JavaServerPages和JavaBeans怎样对数据库举行操纵。这里我们拔取了一个对照有代表性对照有用的例子,那就是用户注册办理,由于这在网上利用对照的频仍,不论是注册Email、有奖查询拜访、购置物品大概到场社区等等城市触及到一个用户注册的成绩;别的一方面,它又对照有代表性,触及到了数据库的纪录增添,纪录显现等罕见操纵,以是我们就拿用户注册开刀了。
程序接纳OracleJdeveloper3.1开辟,运转情况为Wiin2000+Tomcat3.1,数据库体系接纳了Oracle8.16i。
起首我们创建一个数据库demodb,其字段以下面所示
usernameVARCHAR2(20)用户名
passwordVARCHAR2(20)暗码
emailVARCHAR2(30)Email地点
homepageVARCHAR2(50)主页
signsVARCHAR2(200)署名
regtimeDATE注册工夫
接着我们创建几个JavaBeans和JavaServerPages文件
db.java文件(封装数据库毗连及一些底层操纵)
adduser.java文件(举行用户数据的读取和增加操纵)
newuser.jsp文件(用户新增页面,用于输出用户注册信息)
donewuser.jsp文件(举行用户注册信息增加)
listuser.jsp文件(一切的注册用户信息列表)
为了便利人人看代码,在良多中央都举行了具体的正文和解说,至于JavaBean中触及到Java语法布局的工具,请人人参考Java书本。
db.java文件
申明:这个JavaBean封装数据库毗连及一些底层操纵,派生出的类能够间接挪用这些办法,别的供应了一个toChinese办法,次要用来举行中文数据的处置。
//Copyright(c)2000http://jspbbs.yeah.net
packagelyf;
/**
*AClassclass.
*$#@60;P$#@62;
*@authorliuyufeng
*/
//声明类库文件
importoracle.jdbc.driver.*;
importjava.net.*;
importjava.sql.*;
importjava.lang.*;
importjava.io.*;
importjava.util.*;
publicclassdbbr> //成员变量初始化
Connectionconn=null;//数据库毗连
ResultSetrs=null;//纪录集
StringUsername="";//用户名
StringPassword="";//暗码
StringEmail="";//email
StringHomepage="";//主页
StringSigns="";//署名
//db的构建器
publicdb(){
try{
//注册数据库驱动程序为Oracle驱动
Class.forName(neworacle.jdbc.driver.OracleDriver());
}
catch(java.lang.ClassNotFoundExceptione){
//如许写是为了便利调试程序,堕落打印mydb()就晓得在甚么中央堕落了
System.err.println("mydb():"+e.getMessage());
}
}
//executeQuery办法用于举行纪录的查询操纵
//出口参数为sql语句,前往ResultSet对象
publicResultSetexecuteQuery(Stringsql){
rs=null;
try{
//创建数据库毗连,利用Oracle的一种thin毗连体例,demo为主机名字,demodb为数据库,前面的两个demo为用户名和暗码
conn=DriverManager.getConnection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo");
Statementstmt=conn.createStatement();
//实行数据库查询操纵
rs=stmt.executeQuery(sql);
}
catch(SQLExceptionex){
System.err.println("db.executeQuery:"+ex.getMessage());
}
returnrs;
}
//executeUpdate办法用于举行add大概update纪录的操纵
//出口参数为sql语句,乐成前往true,不然为false
publicbooleanexecuteUpdate(Stringsql){
booleanbupdate=false;
rs=null;
try{
//创建数据库毗连,别的参数申明同下面的一样
conn=DriverManager.getConnection("jdbc:oracle:thin:@demo:1521:demodb","demo","demo");
Statementstmt=conn.createStatement();
introwCount=stmt.executeUpdate(sql);
//假如不乐成,bupdate就会前往0
if(rowCount!=0)bupdate=true;
}
catch(SQLExceptionex){
//打印堕落信息
System.err.println("db.executeUpdate:"+ex.getMessage());
}
returnbupdate;
}
//toChinese办法用于将一个字符串举行中文处置
//不然将会是???如许的字符串
publicstaticStringtoChinese(Stringstrvalue){
try{
if(strvalue==null)
{
returnnull;
}
else
{
strvalue=newString(strvalue.getBytes("ISO8859_1"),"GBK");
returnstrvalue;
}
}catch(Exceptione){
returnnull;
}
}
}
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。 |
|