`
condor_mk7
  • 浏览: 43549 次
  • 性别: 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笔试题大集合及答案文档资料合集300MB.zip

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

    疯狂的java讲义源码-db.java:数据库与java的使用

    疯狂的java讲义 源码 ###项目介绍:实验db(jdbc+mybatis+hibernate) ...JAVA开发专家·精通Hibernate:Java对象持久化技术详解(第2版) Mybatis培训视频教程 尚硅谷zxfjd3g 张晓飞 Mybatis培训视频教程01_

    TCPIP协议详解(4-1)

    IP互联 第11章 IP网络中的路由 95 11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 ...

    TCP/IP详解

    11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条...

    BestReview:Android面试题库,覆盖初级、中级、高级、资深工程师、架构师、专家等各级别,精选高质量文章,祝大家面试顺利。 附:Android各级别工程师技能图谱:https

    操作系统 数据库 Java 基础 进阶 优化 设计模式 数据结构 线程、多线程、线程池、并发 JVM Android 基础 进阶 优化 架构 测试 规范 开源框架 Kotlin 算法 查找 排序 其它 工具 产品 服务器 项目 GitHub-Open-Source-...

    JBPM4工作流应用开始指南.rar

    本书适合所有掌握JavaEE(Java企业级版本)开发技术的人员——无论您是技术开发者、项目实施者、系统架构师,还是流程分析师、业务方案顾问,本书都适合您。 第一篇 jBPM工作流开发基础 1 第1章 工作流基础 2 1.1 ...

    Tcl_TK编程权威指南pdf

    该函数库实现了基本的解释器,它有一套实现变量、流程控制和过程的核心脚本命令,而且还有一组用来存取操作系统服务以运行其他程序、存取文件系统和使用网络套接字的命令。Tcl和Tk提供了一台可以在UNIX、Windows和...

    微信公众平台应用开发:方法、技巧与案例.(机械工业.柳峰)

    他还是一位资深的Java软件开发工程师和Android/iOS移动应用开发工程师,活跃于CocoaChina、开源中国、CSDN等社区,CSDN博客专家,在CSDN博客撰写了系列微信公众平台二次开发的教程,深受欢迎并被广泛传播,也因此...

    Flex企业应用开发实战源代码

    本书由业界4位拥有近10年企业级应用开发经验的资深专家撰写,权威性毋庸置疑。 全书共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识...

    C程序设计语言(第2版·新版中文)

    热门Tag JAVA C++ linux C# 教程 C语言 android 源码 PDF 编程 sql c Windows matlab ORACLE 源代码 api 中文 数据库 arm JavaScript 破解 数据结构 vc visual jQuery 计算机 答案 单片机 php JSP mfc .NET 中文版 ...

    Google Android SDK开发范例大全(第3版) 1/5

    基本信息 Google Android SDK开发范例大全(第3版) 作者:王世江(改编), 佘志龙(作者), 陈昱勋(作者), 郑名杰(作者), 等(作者) 出版社: 人民邮电出版社; 第3版 (2011年11月1日) 丛书名: 移动开发系列丛书 平装: ...

    Google Android SDK开发范例大全(第3版) 4/5

    基本信息 Google Android SDK开发范例大全(第3版) 作者:王世江(改编), 佘志龙(作者), 陈昱勋(作者), 郑名杰(作者), 等(作者) 出版社: 人民邮电出版社; 第3版 (2011年11月1日) 丛书名: 移动开发系列丛书 平装: ...

    Google Android SDK开发范例大全(第3版) 3/5

    基本信息 Google Android SDK开发范例大全(第3版) 作者:王世江(改编), 佘志龙(作者), 陈昱勋(作者), 郑名杰(作者), 等(作者) 出版社: 人民邮电出版社; 第3版 (2011年11月1日) 丛书名: 移动开发系列丛书 平装: ...

    Google Android SDK开发范例大全(第3版) 5/5

    基本信息 Google Android SDK开发范例大全(第3版) 作者:王世江(改编), 佘志龙(作者), 陈昱勋(作者), 郑名杰(作者), 等(作者) 出版社: 人民邮电出版社; 第3版 (2011年11月1日) 丛书名: 移动开发系列丛书 平装: ...

    TCP/IP教程TCP/IP基础

    11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条...

    TCP/IP技术大全

    11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条...

    TCP/IP技术大全(中文PDF非扫描版)

    11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条...

    TCP-IP技术大全

    11.1 路由基本知识 95 11.1.1 静态路由 96 11.1.2 距离-向量路由 99 11.1.3 链路-状态路由 100 11.2 IP网络中的收敛 102 11.2.1 适应拓扑变化 102 11.2.2 收敛时间 106 11.3 计算IP网络中的路由 106 11.3.1 存储多条...

Global site tag (gtag.js) - Google Analytics