Java数据库编程中的技巧

在201县市路上

在201县市路上

2016-01-29 12:51

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"),返回当前游标下某个字段的值。

  3、释放连接。

  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();
2005年5月10日 2005年3月30日 2005年3月30日 2005年3月30日 2005年3月30日 2005年3月30日 2005年3月29日 2005年3月29日 2005年3月29日 2005年3月28日 2005年3月28日 2005年3月28日
展开更多 50%)
分享

猜你喜欢

Java数据库编程中的技巧

Java JAVA基础
Java数据库编程中的技巧

jsp中的数据库编程

Web开发
jsp中的数据库编程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP数据库编程SQL常用技巧

ASP
ASP数据库编程SQL常用技巧

在JAVA中连接Oracle数据库(例子)

编程语言 网络编程
在JAVA中连接Oracle数据库(例子)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VC的另类数据库编程

C语言教程 C语言函数
VC的另类数据库编程

java与数据库连接

编程语言 网络编程
java与数据库连接

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java线程模型缺陷

Java线程模型缺陷

判断数字大小

判断数字大小
下拉加载更多内容 ↓