仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2131|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网页编程之用JDBC会见一个数据库

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:55:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在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设置文件。(编纂”[x:]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的复杂性。
小妖女 该用户已被删除
沙发
发表于 2015-1-21 17:01:21 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
再现理想 该用户已被删除
板凳
发表于 2015-1-26 18:15:53 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
乐观 该用户已被删除
地板
发表于 2015-2-4 17:43:16 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
不帅 该用户已被删除
5#
 楼主| 发表于 2015-2-4 20:22:42 | 只看该作者
是一种为 Internet发展的计算机语言
老尸 该用户已被删除
6#
发表于 2015-2-10 06:26:50 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
爱飞 该用户已被删除
7#
发表于 2015-2-12 10:20:11 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
深爱那片海 该用户已被删除
8#
发表于 2015-3-3 01:09:56 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
简单生活 该用户已被删除
9#
发表于 2015-3-6 22:32:34 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-13 22:07:24 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
灵魂腐蚀 该用户已被删除
11#
发表于 2015-3-13 22:07:27 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
只想知道 该用户已被删除
12#
发表于 2015-3-15 07:21:42 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
蒙在股里 该用户已被删除
13#
发表于 2015-3-19 01:52:30 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
兰色精灵 该用户已被删除
14#
发表于 2015-3-26 23:08:10 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
谁可相欹 该用户已被删除
15#
发表于 2015-3-27 03:08:25 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
活着的死人 该用户已被删除
16#
发表于 2015-3-31 18:36:32 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
飘灵儿 该用户已被删除
17#
发表于 2015-4-6 00:11:00 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
第二个灵魂 该用户已被删除
18#
发表于 2015-4-21 07:28:20 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
透明 该用户已被删除
19#
发表于 2015-5-11 19:59:00 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
分手快乐 该用户已被删除
20#
发表于 2015-5-11 22:27:22 | 只看该作者
是一种突破用户端机器环境和CPU
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 22:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表