`
lzkyo
  • 浏览: 466624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接

    博客分类:
  • Java
阅读更多
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("comp/env");
    DataSource ds = (DataSource) ctx.lookup(jndi);
    Connection cn = ds.getConnection();
  
2、执行sql语句

  1)用Statement来执行sql语句
   String sql;
   Statement sm = cn.createStatement();
   sm.executeQuery(sql); // 执行数据查询语句(select)
   sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)
   stement.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定时执行sql语句

    通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...

    数据库系统教学课件:第8讲-高级SQL.ppt

    - **构建SQL语句**:动态SQL语句可以是空的,也可以是插入、更新、删除等操作。例如,动态生成一个插入语句,并执行插入操作。 - **处理结果**:如果SQL执行成功,我们可以继续处理结果,如查看或更新数据。如果失败...

    java连接数据库代码

    4. Java数据库操作基本流程: - 加载驱动:通过`Class.forName()`方法注册并加载数据库驱动。 - 建立连接:使用`DriverManager.getConnection()`方法创建数据库连接。 - 创建Statement/PreparedStatement对象:...

    Java数据库连接Java数据库连接.ppt

    数据库访问是指 Java 程序对数据库的操作,包括创建数据源、执行 SQL 语句、处理查询结果等。Java 数据库连接可以用于各种数据库管理系统,如 MySQL、Oracle、SQL Server 等。 Java 数据库连接的主要内容包括: 1....

    java连接数据库 sql2000 sql2005 数据库的连接

    - `Statement sql`: 这是执行SQL语句的对象,用来发送SQL命令到数据库。 - `ResultSet res`: 当执行查询操作时,会返回一个`ResultSet`对象,其中包含查询结果。 3. **加载JDBC驱动**: - 在`getConnection()`...

    关于java数据库基本操作

    #### 一、Java数据库操作基本流程 对于初学者而言,在进行小型管理程序的开发过程中,正确地连接数据库并获取所需的结果集是非常关键的一步。然而,很多初学者在这个环节遇到了不少挑战,比如无法正确移动结果集...

    java 中连接数据库语句和模块

    它提供了连接数据库、执行SQL语句、处理结果集等方法。JDBC API主要由`java.sql`和`javax.sql`包下的类和接口组成,如`Connection`、`Statement`、`PreparedStatement`、`ResultSet`等。 2. **数据库驱动**:要通过...

    sql.rar_java数据库连接_java连接_java连接数据库_sql数据库连接

    JDBC允许开发者执行SQL语句,管理事务,处理结果集等。使用JDBC时,我们需要导入`java.sql`和`javax.sql`包中的相关类。 1. **驱动管理**:在Java中,我们需要加载和注册相应的数据库驱动。例如,对于MySQL,我们...

    执行sql语句,并将结果通过ArrayList返回。字段名统一大写 JDBC 连接数据库

    调用`getHosSqlCon`方法获取数据库连接,再调用`getHosSqlResult`方法执行SQL语句并获取结果。结果将以`ArrayList, String>>`的形式返回,其中每个`Map`表示一条记录,键为大写的列名,值为该列对应的值。 #### 四...

    JAVA:数据库操作封装

    - `prepstmt`:`java.sql.PreparedStatement`对象,用于执行预编译的SQL语句。 - `drivers`:数据库驱动名称。 - `url`:数据库连接URL。 - `user`:数据库用户名。 - `password`:数据库密码。 - `jndi_name`:JNDI...

    mysql数据库驱动:mysql-connector-java-6.0.5.jar

    MySQL数据库驱动程序是Java应用程序与MySQL数据库之间通信的桥梁,主要功能是提供API接口,使得开发者可以使用Java语言编写程序来执行SQL语句,进行数据的读取、写入和其他数据库操作。`mysql-connector-java-6.0.5....

    Java 数据库操作大全

    Java数据库操作主要依赖于JDBC(Java Database Connectivity),这是一个Java API,允许Java应用程序连接到各种类型的数据库。以下是一些核心知识点: 1. **JDBC驱动类型**:Java提供了四种类型的JDBC驱动,包括 ...

    java连接数据库SQLServer

    Java连接数据库SQLServer主要涉及的技术点是JDBC(Java Database Connectivity),它是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC使得Java开发者...

    JAVA数据库-数据库集合

    JDBC提供了一套标准的API,允许开发者在Java应用中执行SQL语句,处理结果集,管理事务等。 #### JDBC关键组件 - **DriverManager**:用于加载数据库驱动并获取数据库连接。它是JDBC的入口点。 - **Connection**:...

    java 连接sqlserver2000 和数据库的操作

    在本篇文章中,我们将深入探讨如何使用Java连接到SQL Server 2000数据库,并执行基本的数据库操作。本文将详细介绍整个过程中的六个关键步骤及其原因与注意事项。 ### 一、加载数据库驱动(注册驱动) #### 步骤:...

    java数据库连接的一段代码

    ### Java数据库连接(JDBC)详解 #### 一、引言 在Java开发中,与数据库进行交互是一项非常常见的任务。为了实现这一目标,Java提供了一套标准的API——Java Database Connectivity (JDBC),用于访问关系型数据库。...

    java 连接sqlserver使用的java-sqlserver-connect.jar包

    总结来说,"java-sqlserver-connect.jar"是Java应用程序连接SQL Server数据库的关键组件,它为开发者提供了在Java环境中执行SQL查询和操作数据库的能力,同时支持JRE7和JRE8,确保了兼容性和灵活性。在实际项目中,...

    java jdk1.8 连接sqlserver数据库使用的扩展jar包-sqljdbc42

    3. **执行SQL语句**:创建`Statement`或`PreparedStatement`对象,然后调用其`executeQuery()`或`executeUpdate()`方法执行SQL。 4. **处理结果**:如果执行的是查询语句,可以通过`ResultSet`对象获取结果集并遍历...

    java数据库操作类

    - 创建Statement或PreparedStatement对象:执行SQL语句,Statement用于基本查询,PreparedStatement则用于预编译的SQL,提高安全性。 - 执行SQL:调用Statement或PreparedStatement的方法执行SQL。 - 处理结果集...

Global site tag (gtag.js) - Google Analytics