JAVA网页编程之用JDBC会见一个数据库
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。会见|数据|数据库公布者:flyfox在这个实习里你将进修利用JDBC会见数据库和拔出一个纪录到数据库的基本常识。
在这个实习里,你将写RegistrationServlet类的register办法。这个类和你在Servlet1A实习里用的一样。在这个实习里,你将利用数据库的功效。这个实习将展现完成用户需求的步骤。
第一部分:了解regsiter()办法在RegistrationServlet中的事情道理
在这个实习里,你将在com.ibm.waslab.JDBC包上事情。扩大RegistrationServlet类,了解register()。这个办法抛一个SQLException。完全的办法声明是:
publicsynchronizedvoidregister(PropertiesformInput)
throwsSQLException{
}
register()办法在servlet获得把持时从doPost()办法里被挪用。register()办法实践上写一个新的纪录到数据库。我们将在第二部分写register()办法。同时,我们必要确信一些设置步骤已完成。
1.翻开init()办法,在super.init()的挪用前面输出以下的代码:
//LoadJDBCdriverforDB2
try
{
Class.forName(JKToysDBInfo.gerDriver());
}
catch(ClassNotFoundExceptione)
{
erroLog(“JDBCDrivernotfound”+e);
}
保留init()办法。记着,在驱动器办理能够失掉一个毗连之前,一个准确的数据库驱动器必需被servlet装载。每个servlet只在servlet的init()办法里作一次。这个办法其实不真地创建一个毗连,它只是同意毗连被创建。
注重:在这个情形下,我们装载DB2app驱动器。这个驱动器是在数据库装在servlet将要运转的统一台呆板上时利用的。假如你在会见另外一台呆板上的数据库,你要利用net驱动器:
COM.ibm.db2.jdbc.net.DB2Driver
当用net驱动器失掉一个毗连,你必要在getConnection()里利用的URL里供应更多的信息。数据库地点的呆板名或URL,和DB2JavaGateway侦听的端标语。一个无效的URL参数看上往是如许的:
jdbc:db2://servrid:8888/databasename
第二部分
1.如今,归去,从头翻开register()办法。代码的第一行创立一个数据库毗连:
Connectionconn=DriverManager.getConnection(URL,USER,PASSWORD);
你用驱动器办理器的静态办法getConnection(),把数据库的URL,一个无效的用户ID和口令传送给它。url,userid和password在类被装载时从一个属性文件里失掉(看静态变量声明)。
2.如今到了有应战性的部分了。我们要作的第一件事是找到已被分派失落的最初一个客户号码,如许我们能够分派给正在注册的新客户一个新的客户号码(比之前的最高的还要高)。我们要存储这个新的客户号码在一个int变量名为nextId。为了做到这个,你会必要确信利用Statement类和ResultSet类。以下的SQL;
“SELECTMAX(CUSTNO)FORM”+DBOWNER+”.CUSTOMER”
将同意你取得以后最高的客户号。尝尝本人写这个代码,基于课程条记的例子。假如你必要匡助,看谜底页。
3.接着你将用一个preparedstatement对象来把客户属性对象里的信息拔出数据库。输出以下的行:
//Insertrecordinthedatabase
PreparedStatementinsertStatement=
conn.prepareStatement(“INSERTINTO”+DBOWNER+”.CUSTOMER(FNAME,LNAME,ADDR,CITY,STATE,AGE,ZIP,CUSTNO)”+”VALUES(?,?,?,?,?,?,?,?)”);
下面的行请求毗连创立一个preparedstatement对象叫insertStatement。SQL语句作为参数被传送。数据库行的每列的值用问号代表。每个问号必需被一个准确范例的值取代。输出以下行:
insertStatement.setString(1,formInput.getProperty(“FNAME”));
insertStatement.setString(2,formInput.getProperty(“LNAME”));
insertStatement.setString(3,formInput.getProperty(“ADDR”));
insertStatement.setString(4,formInput.getProperty(“CITY”));
insertStatement.setString(5,formInput.getProperty(“STATE”));
insertStatement.setString(6,formInput.getProperty(“AGE”));
insertStatement.setString(7,formInput.getProperty(“ZIP”));
insertStatement.setInt(8,nextId);
4.insertStatement实行对数据库的更新。输出上面两行:
insertStatement.executeUpdate();
假如有毛病呈现在创立毗连时,语句或会见数据库,这个办法会抛出一个SQLException。
5.最初你必要存储客户号码到formInput属性对象。输出上面行:
formInput.put(“CUSTNO”,newInteger(nextId).toString());
6.保留办法。应当没有毛病。
7.接着你将必要为JKRegisterservlet编纂WebSphere设置文件。(编纂”IBMVJavaideproject_resourcesIBMWebSphereTestEnvironmentpropertiesserverservletservletserviceserrvlets.properties”.)
改动看上往如许的行:
servlet.JKRegister.code=com.ibm.waslab.servlet1.RegistrationServlet
为如许:
servlet.JKRegister,code=com.ibm.waslab.JDBC.RegistrationServlet
8.假如你的webserver在运转,关失落它。在VAJ,启动SERunner。翻开你的web扫瞄器,到JKToys网站的注册页面。在表格里输出注册信息,按注册按钮。你的新的servlet将被挪用。登录进JKToys站点确信注册已产生。你的新的客户号码应当能在数据库找到。
在这个实习你作了甚么
在这个实习,你编写了RegistrationServlet的register办法。这个办法用JDBC来创立一个新的客户号码,注册一个新的客户到数据库。如今你有了在你的servlets里会见数据库的基础常识。
谜底
以下的代码创立一个SQL语句,实行在前一页里界说的SQL查询。
//Getnextcustomernumber
StatementsqlStatement=conn.createStatement();
ResultSetresult=sqlStatement.executeQuery(“SELECTMAX(CUSTNO)FROM”+DBOWNER+”.CUSTOMER”);
查询的了局被放在ResultSet对象叫result内里。了局的汇合包括一个游标,最后指向前往的第一行后面。为了失掉查询的值游标必需用next()往前挪动。用这个办法,游标只能向前挪动。上面几行挪动游标到前往的值,增添1。
intnextId=0;
if(result.next()==true)
{
nextId=result.getInt(1)+1;
}
if反省断定是不是有行被前往。假如没有,了局为false。我们不处置毛病的情形,可是它能够复杂地用把nextId设置为1来处置。我们还能够用ResultSet的办法getInt(String),列的名字为”CUSTNO”,可是由于我们晓得只要一列会被前往,我们选择用getInt(int)..
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 是一种为 Internet发展的计算机语言 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 是一种突破用户端机器环境和CPU
页:
[1]
2