王朝网络
分享
 
 
 

MySQL实施JDBC 2.0/3.0 API的新特性学习实践

王朝mysql·作者佚名  2008-05-31
宽屏版  字体: |||超大  

--在jsp+mysql+Resin+win2000环境下实施网络程序开发笔记

[序]昨天一天都没有调试出上传图像到数据库中的程序,虽然查了CSDN,但所查资料都不好使。今天想起了几个要害点没有仔细的试到,主要是JDBC API新功能到底对MySql有没有作用,假如不行,为什么MySQL Driver包中的ResultSet类中有新的API方法?另外,upload包的几个类对添加图像到数据库中到底行不行。不管行还是不行,我得再仔细试一下。因昨天曾测试通过了JDBC API新的更新方法,所以计划今天先调试上传图像到数据库中程序,经过一小段时间的调试,终于通过,调用图像显示程序一试,图像出来了,试试jpg格式的图像,也成功了,真是大快人心。数据库保存图像功能调试成功为我调试JDBC API新的插入功能增加了信心,几经周折也成功了,为了记住这一过程,我想想还是写下来。

原定目标:通过网络,把客户端的gif或jpg图像文件存到服务器端的MySQL数据库中。

设计思路:做一个供客户使用的表单,客户通过该表单可查找客户端的图像文件,并提取该文件的文件名于表单输入框中。客户提交表单后,将激活服务器端的insertpic.jsp,通过insertpic.jsp保存图像文件的数据到数据库中。

在实施过程中又碰到和攻克了新的难题:JDBC新的API插入、更新、删除指令如何使用;upload包如何使用,学习和演示了《Java Servlets编程指南》上提供的连接池,图像显示程序。

具体编程思路、碰到的问题,小结:

1、数据库表名:javadoc;保存图像数据的字段用Blob或MediumBlob或LongBlob类型的。

建立数据表的SQL语句如下:

SQL = "CREATE TABLE javadoc (" +

"gid int(11) NOT NULL auto_increment," +

"gheading varchar(100)," +

"gimage longblob," +

"PRIMARY KEY (gid))";

2、表单上的查找并提取图像文件名的输入框用下面的语句实现:

图像

3、表单的

要加入下面的属性和属性值:

enctype="multipart/form-data"

加入该属性后,该表单就不能再同时作为传输其他数据字段的表单了,如不能再传送串字段。

4、启用upload包,内含File.class、Files.class、Request.class、SmartUpload.class、SmartUploadException.class,来协助保存图像,以降低开发难度。

几个类的原代码见相关文件,File类公用方法已粘在相关的jsp文件中。

5、JDBC新的API插入、更新、删除功能,具体步骤如下:

插入一个记录的步骤:

(1)预备一个空记录:MoveToInsertRow();

(2)填入数据:updateXXX();

(3)实施插入:insertRow();

更新一个记录步骤:

(1)定位记录:用absolute()或relative()等方法;

(2)填入新值:updateXXX();

(3)实施更新:updateRow();

删除一个记录的步骤:

(1)定位记录:用absolute()或relative()等方法;

(2)实施删除:deleteRow();

6、插入数据碰到的问题:我在保存图像的表中设计了一个自动增量的gid字段,并定义为NOT NULL。在通常用SQL语句插入新值的情况下,可以忽略对该字段插值,数据库会自动赋值。但在使用JDBC API插入记录的过程中发现,对该字段不能不管,必须调用rs.updateLong("gid" ..)赋值,否则系统会出现异常。我也想到并试过申请一个不包含该字段的游标,然后对该游标执行上面的几个插入记录的步骤,但也出现异常。另外,我的表中还有一个gheading的字段,该字段缺省值没定义,建立一个不包含该字段的游标然后执行插入新记录的操作是可以通过的,即执行插入操作对gheading这类字段可以忽略不用管它。由此我推断,只要是被说明为NOT NULL的字段,你在使用JDBC新的API进行插入记录编程时不能忽略它,必须要显式的赋值,否则系统会出现异常。

7、对自动增量的字段在进行插入记录编程时如何为其赋新值?

我的方案是这样:

(1)使用select * form tablename order by gid 申请游标,其中gid为自动增量并不能为NULL的字段,为了简单,假设该游标不会为空;

(2)对游标last()一下,到游标的底部;

(3)取gid字段的值赋给一个临时变量mid;

(4)mid++;

(5)对gid字段实行 updateLong("gid",mid);

...

8、对自动增量的字段插入记录编程按上述步骤赋新值还要考虑的问题?

我认为要考虑为记录上锁,否则仍有出现异常的潜在问题。

今天就到此为止吧。(飒龙)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝网络 版权所有