`
vvnet
  • 浏览: 116518 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Oracle数据库和JSP连接要注意的一些问题

    博客分类:
  • JAVA
阅读更多

 CLOB可用于存放大文本数据,最多可存储4GB数据,在应用开发中比较常见.java提供的sql.Clob类与之对应.它提供两个方法来读取Clob的数据:

  用ORACLE9i、oracle8、有很长的一段时间,我把用于JSP中需要注意的问题在这里写出来,仅供大家参考了。

  一、如何去处理Clob、BLOB的大类型

  CLOB可用于存放大文本数据,最多可存储4GB数据,在应用开发中比较常见.java提供的sql.Clob类与之对应.它提供两个方法来读取Clob的数据:

  getCharacterStream() 方法返回按unicode编码的输入流(java.io.Reader对象)

  getAsciiStream() 方法返回按ASCII编码的输入流(java.io.InputStream对象)

  所以如果你的数据库中有可能存储中文字符的话,就要使用前一个方法.

  现在举一个实际的例子,让我一步步学习如何使用CLOB.

  首先,创建一个含CLOB字段的表:

  create table test (id INTEGERcontent clob);

  接下来, 我们通过JSP往这张表里插入一条记录,然后再获取显示它.

  插入操作:

  以上需要注意的几点是:

  1)clob类型的数据不能直接insert,要先通过empty_clob()方法给它分配一个locator(同理,blob的用empty_blob()函数分配locator).然后把它select出来(此时它当然没有数据,但结果集不是空的),得到一个Clob的对象,修改该对象的内容让它满足我们的需要,再通过update方法更新该行记录.

  2) 通过select修改含lob类型的记录时一定要锁定该行(通过for update关键字实现),否则oracle会报错.

  3) 刚插入的记录就select for update, 会出现"违反读取顺序"错误,解决办法是将自动提交功能置为false,即不允许自动提交,然后commit它,再select,就可以了. 这就是上面那段代码里//*两行的作用.

  下面,我们将刚插入的记录从数据库中读取出来并显示之:

  二、编码问题

  因为JAVA的开发者是老外,所以他们对中文的支持并不是太好,这一点让不少的我们感到很是头痛,也就是我们通过说的汉字编码问题吧,关于一些汉字编码的规范我就不多说了,我主要是谈谈在和oracle数据库连接时的一些小问题,不过这些小问题很是让人头痛的。

  1、在插入到数据库中的中文问题要转换成编码

  2、从数据库中读到中文又要转换成编码

  让我们看一个编码的JAVA代码:

//ECov.java 
  import java.io.UnsupportedEncodingException; 
  public class ECov 
  { 
  public static String asc2gb(String asc){ 
  String ret; 
  if(asc==null)return asc; 
  try{ 
  ret=new String(asc.getBytes("ISO8859_1"),"GB2312"); 
  } 
  catch(UnsupportedEncodingException e){ 
  ret=asc; 
  } 
  return ret; 
  } 
  public static String gb2asc(String gb){ 
  String ret; 
  if(gb==null)return gb; 
  try{ 
  ret=new String(gb.getBytes("GB2312"),"ISO8859_1"); 
  } 
  catch(UnsupportedEncodingException e){ 
  ret=gb; 
  } 
  return ret; 
  } 
  public static int byte2int(byte b){ 
  return ((-1)>>>24)&b; 
  } 
  }

 

  其实这段代码的意思也就是把两种方法合而为一了。

  在进行数据库插入时要用ECov.gb2asc(arg),要在读时要用ECov.asc2gb(arg)。其中最关键的一点就是Oracle好像只认识ISO8859_1这种格式的编码吧(仅是我的想法)。

  三、一些小细节

  1、就是setAutoCommit(true or false),就是我们在sqlPlus中常用commit()的功能,如果是用true,就不要用commit(),否则还是用commit()方法的。

  2、对日期类型的处理,其实他并不是想象中setDate(),getDate()那么简单的,中间有很大的漏洞。大家自己多调试就会觉得有很多的乐趣的。

  3、在和数据库中最好是采用连接池技术,用标准的J2EE的环境,用简单的JNDI技术,是很好的一种方法的。

分享到:
评论

相关推荐

    jsp连接Oracle数据库实现增删改查

    "jsp连接Oracle数据库实现增删改查"这个项目旨在教你如何利用JSP(JavaServer Pages)技术来构建一个完整的用户管理系统,包括登录、注册以及对数据表(如学生表)的CRUD(Create, Read, Update, Delete)操作。...

    jsp连接oracle数据库代码

    ### JSP连接Oracle数据库...通过以上分析,我们可以了解到使用JSP连接Oracle数据库的基本步骤和注意事项。这些知识点不仅适用于本文中的示例,也适用于更广泛的场景。掌握这些技术对于Web开发人员来说是非常重要的。

    jsp连接oracle数据库javabean

    连接oracle数据库的JavaEean

    jsp链接oracle数据库

    本教程将聚焦于如何使用JSP连接Oracle数据库,帮助初学者入门。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java语言连接数据库的标准API。通过JDBC,Java程序可以与各种类型的数据库进行交互。在...

    Android通过jsp后台连接Oracle数据库

    - JDBC(Java Database Connectivity)是JSP连接Oracle数据库的标准接口,它提供了一系列的API用于执行SQL语句和处理结果集。 3. **Oracle数据库连接**: - 使用JDBC驱动程序,JSP可以建立与Oracle数据库的连接。...

    jsp中连接oracle数据库的javabean

    为了在JSP中与Oracle数据库交互,开发者通常会使用JavaBeans来封装数据库连接逻辑,方便复用和管理。本篇将深入讲解如何创建一个JavaBean来连接Oracle数据库,并在JSP中使用它。 首先,让我们了解JavaBean的基本...

    JSP对Oracle数据库的操作

    在本文中,我们将探讨如何使用JSP(JavaServer Pages)连接到Oracle数据库并执行基本的CRUD(创建、读取、更新、删除)操作。首先,我们需要了解JDBC(Java Database Connectivity),它是Java中用于与各种数据库...

    JAVAweb连接oracle数据库工程

    1. **Model**:模型层负责处理业务逻辑和数据操作,这里将包含用于连接Oracle数据库的Java类,如`ReadOrcl`,它可能包含JDBC连接池管理、SQL语句执行等方法。 2. **DAO**:数据访问对象层是模型层的一部分,负责与...

    JSP Oracle数据库的连接

    通过本文对JSP连接Oracle数据库的深入解析,相信读者已对这一过程有了全面的理解。无论是在本地还是远程环境中,正确配置数据源、选择合适的JDBC驱动及连接方式,都是实现高效数据库交互的关键。在实际项目开发中,...

    JSP+Oracle数据库开发与实例 2

    通过学习“JSP+Oracle数据库开发与实例”,开发者不仅可以掌握JSP页面的编写技巧,还能深入了解Oracle数据库的管理和操作,以及如何利用JDBC进行高效的数据交互。这对于提升Web开发技能,尤其是从事企业级应用开发的...

    JavaWeb连接Oracle数据库

    下面是一个简单的JSP连接Oracle数据库的示例: ```jsp *" %> String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; String user = "username"; String password = "password"; Connection conn = null; ...

    JSP与oracle数据库连接实例

    JSP ORACLE,用于初学者连接数据库

    jsp连接oracle数据库读表

    首先,要实现JSP连接Oracle数据库,我们需要以下组件: 1. **JDBC驱动**:Oracle提供了一个名为ojdbc的JDBC驱动程序,它是连接Oracle数据库的桥梁。确保你的项目中已经包含了对应的jar文件,如`ojdbc6.jar`或`ojdbc...

    JSP远程访问Oracle数据库

    在构建Web应用时,安全性和数据管理是两个至关重要的因素。..."JSP远程访问Oracle数据库.pdf"这个文件很可能是对此主题的深入讲解,包括具体的代码示例和最佳实践,对于学习和应用这一技术是非常有价值的参考资料。

    JSp+oracle数据库应用系统开发与实例

    《JSP+Oracle数据库应用系统开发与...通过对这本书的学习,开发者不仅能够深入理解JSP与Oracle数据库的协同工作,还能积累实战经验,提升解决实际问题的能力。无论是初学者还是有一定经验的开发者,都能从中受益匪浅。

    java留言板,oracle数据库,JSP实例

    2. **连接数据库**:在JSP中,使用JDBC(Java Database Connectivity)API建立与Oracle数据库的连接。设置数据库URL,用户名和密码,并加载Oracle的JDBC驱动。 3. **创建JavaBean**:编写一个名为`MessageBean`的...

    JSP+Oracle数据库组建动态网站经典实例

    学习这些实例,你可以掌握JSP与Oracle数据库的集成技巧,了解如何使用JDBC连接数据库,编写SQL语句,处理会话状态,以及如何设计和优化数据库结构。同时,这些实例还会涉及到错误处理、权限控制、安全性等方面的知识...

    JSP对Oracle数据库进行增删改查实例.docx

    《JSP对Oracle数据库进行增删改查实例》 在Web开发中,JSP(JavaServer Pages)常常被用于创建动态网页,而Oracle数据库作为一款强大的关系型数据库管理系统,广泛应用于企业级应用。本实例将详细讲解如何使用JSP与...

    jsp项目链接Oracle数据库(人事管理)

    3. **Oracle数据库连接**:使用JDBC(Java Database Connectivity)API来建立与Oracle数据库的连接,执行SQL语句,如SELECT、INSERT、UPDATE和DELETE。 4. **JDBC事务处理**:理解如何在JSP中控制数据库的事务,...

Global site tag (gtag.js) - Google Analytics