文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何进行MySQL实施JDBC 2.0/3.0 的新特性实践

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关如何进行MySQL实施JDBC 2.0/3.0 的新特性实践,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

昨天一天都没有调试出上传图像到数据库中的程序,虽然查了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、对自动增量的字段插入记录编程按上述步骤赋新值还要考虑的问题?
  我认为要考虑为记录上锁,否则仍有出现异常的潜在问题。

关于如何进行MySQL实施JDBC 2.0/3.0 的新特性实践就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯