`
condor_mk7
  • 浏览: 44455 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

专家为您详解JAVA数据库基本操作

阅读更多
java 数据库基本操作
1、java数据库操作基本流程
2、几个常用的重要技巧:
     可滚动、更新的记录集
     批量更新
     事务处理

java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接
1、取得数据库连接
  1)用DriverManager取数据库连接
   例子
    String className,url,uid,pwd;
    className = "oracle.jdbc.driver.OracleDriver";
    url       = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
    uid       = "system";
    pwd       = "manager";
    Class.forName(className);
    Connection cn = DriverManager.getConnection(url,uid,pwd);
  2)用jndi(java的命名和目录服务)方式
   例子
    String jndi = "jdbc/db";
    Context ctx = (Context) new InitialContext().lookup("java:comp/env");
    DataSource ds = (DataSource) ctx.lookup(jndi);
    Connection cn = ds.getConnection();
   多用于jsp中

2、执行sql语句
  1)用Statement来执行sql语句
   String sql;
   Statement sm = cn.createStatement();
   sm.executeQuery(sql); // 执行数据查询语句(select)
   sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close();
  2)用PreparedStatement来执行sql语句
   String sql;
   sql  = "insert into user (id,name) values (?,?)";
   PreparedStatement ps = cn.prepareStatement(sql);
   ps.setInt(1,xxx);
   ps.setString(2,xxx);
   ...
   ResultSet rs = ps.executeQuery(); // 查询
   int c = ps.executeUpdate(); // 更新
  
3、处理执行结果
  查询语句,返回记录集ResultSet
  更新语句,返回数字,表示该更新影响的记录数
  ResultSet的方法
  1、next(),将游标往后移动一行,如果成功返回true;否则返回false
  2、getInt("id")或getSting("name"),返回当前游标下某个字段的值
 
4、释放连接
  cn.close();
  一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection


可滚动、更新的记录集
1、创建可滚动、更新的Statement
  Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
  该Statement取得的ResultSet就是可滚动的
2、创建PreparedStatement时指定参数
  PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

  ResultSet.absolute(9000); 
批量更新
1、Statement
  Statement sm = cn.createStatement();
  sm.addBatch(sql1);
  sm.addBatch(sql2);
  ...
  sm.executeBatch()
  一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有
2、PreparedStatement
  PreparedStatement ps = cn.preparedStatement(sql);
  {
   ps.setXXX(1,xxx);
   ...
   ps.addBatch();
  }
  ps.executeBatch();
  一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。

 
事务的处理
1、关闭Connection的自动提交
  cn.setAutoCommit(false);
2、执行一系列sql语句
  要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close
Statement sm ;
sm = cn.createStatement(insert into user...);
sm.executeUpdate();
sm.close();

sm = cn.createStatement("insert into corp...);
sm.executeUpdate();
sm.close();

3、提交
  cn.commit();
4、如果发生异常,那么回滚
  cn.rollback();


分享到:
评论

相关推荐

    从Java菜鸟到专家的资料

    这份名为“从Java菜鸟到专家的资料”的压缩包文件包含了丰富的学习资源,旨在帮助初学者逐步成长为Java领域的专家。以下是对各个文件的详细解读: 1. **J2EE研究文集.chm**:这个文件专注于Java企业级应用开发,...

    java反射机制详解与应用

    Java反射机制是Java语言的一项强大功能,它允许程序在运行时动态地获取类的信息并操作类的对象。这一特性使得Java具有高度的灵活性和强大的扩展性,尤其是在开发框架和库时,反射机制起到了至关重要的作用。本文将...

    JAVA优化编程详解

    在《JAVA优化编程详解》这本书中,作者深入探讨了如何将Java编程技能提升到一个全新的层次,特别是聚焦于性能优化这一关键领域。Java优化不仅仅是关于提高代码运行速度,更是关于资源的有效利用,确保应用程序在复杂...

    Java面试宝典

    #### 五、高级Java数据库操作技巧 1. **批量操作**:使用BatchUpdate进行批量插入、更新等操作,提高性能。 2. **事务管理**:确保数据的一致性和完整性,使用Connection对象的beginTransaction()和commit()方法控制...

    java web 开发详解 源代码

    数据库交互是Web应用的重要部分,课程可能涉及JDBC(Java Database Connectivity)API的使用,包括连接数据库、执行SQL语句、处理结果集等操作。同时,可能会讲解ORM(Object-Relational Mapping)框架,如Hibernate...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅.docx 给你一次机会面试架构师 你会问什么问题?.docx 超全面:程序员跳槽神级攻略.docx 跳还是不跳,是一个问题——跳槽时该如何权衡?.docx 进入IT企业...

    6.openPlant JAVA 二次开发手册_openplant_openPlantjava_happyu91_java_ca

    2. **JAVA API**: API(Application Programming Interface)是软件之间交互的接口,JAVA API则是基于JAVA语言的一组预定义类和方法,允许开发者访问和操作操作系统、数据库、硬件设备等功能。 3. **二次开发**: 在...

    Oracle_DBA_java.rar_oracle_oracle 笔记

    【Oracle DBA与Java知识点详解】 Oracle数据库管理系统是全球广泛使用的商业级数据库系统,而Java是一种多平台的、面向对象的编程语言。这两者在IT领域中都有着举足轻重的地位,尤其在企业级应用开发中,Oracle作为...

    Java经典代码(绝对经典)

    这份资料由国际知名的Java专家编写,它以实际的应用程序小程序展示了Java语言的核心特性以及标准库的广泛功能。通过这些经典代码,你可以对Java编程有更直观、更深入的认识。 在描述中提到,这份资料涵盖了Java API...

    JAVA学习推荐.txt

    ### JAVA学习推荐路线详解 在IT领域中,Java作为一门广泛应用的编程语言,其学习路径对初学者至关重要。...这一路线图旨在为Java学习者提供一个全面且系统的指导,帮助他们在编程旅程中不断进步,成为Java领域的专家。

    JOOQ框架详解(文档+代码)

    在Java世界里,ORM(Object-Relational Mapping)框架如Hibernate、TopLink和JPA等已经深入人心,它们为开发者提供了方便的数据访问层抽象,使得数据库操作更加便捷。然而,对于某些特定场景,如高性能、低延迟或高度...

    Java程序员必备技能

    ### Java程序员必备技能详解 #### 一、语法基础 对于一名Java程序员而言,掌握扎实的语法基础至关重要。这意味着在编写代码时,面对IDE...通过上述十个方面的深入学习,相信每位Java开发者都能够逐步成长为技术专家。

    Java大礼包 深入知识

    "牛人给java学者的建议.rar"和"java大礼包"这两个文件名暗示了这是一些专家或者经验丰富的开发者分享的Java学习建议和资源集合,可能包括最佳实践、常见问题解答、实战项目案例等,对于初学者和进阶者来说都是宝贵的...

    Java语言中所有常用术语解释大全 txt

    JDBC是Java数据库连接。 - **定义**:JDBC是Java平台提供的一个标准API,用于实现Java应用程序与数据库之间的连接和交互。 - **用途**:JDBC使得Java开发者能够以统一的方式访问不同的数据库系统,简化了数据库操作...

    J2EE 经典实例详解

    JPA简化了对象关系映射,使得Java对象可以直接操作数据库记录。实例能让你了解如何在J2EE应用中实现事务管理和持久化操作。 7. **Web服务和SOAP**:J2EE支持通过SOAP(Simple Object Access Protocol)创建和消费...

    学习JAVA的30个目标.doc

    【JAVA学习目标详解】 在学习Java的过程中,有多个关键领域需要深入理解和掌握,这涵盖了从基础语法到高级特性的广泛内容。以下是对标题和描述中提及的一些知识点的详细解释: 1. **面向对象编程(OOA/OOD)与设计...

Global site tag (gtag.js) - Google Analytics