• Java数据库编程中的技巧
    作者: 天极网∣来源:IT世界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();
  • 提示:使用前请把大写状态下"<>"改为小写状态下的"<>"


      01.让背景图不滚动

      IE浏览器支持一个 Body 属性 bgproperties,它可以让背景不滚动:

      〈Body Background="图片文件" bgproperties="fixed"〉

      02.让你的网页无法另存为

      <noscript><iframe src=*></iframe></noscript>

      03.让IFRAME框架内的文档的背景透明

      <iframe src="about:<body style='background:transparent'>" allowtransparency></iframe>

      04.禁止右键:

      <body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()">

      05.进入页面后立即自动刷新?

      <meta http-equiv="refresh" content="120;url=http://www.wodutom.com/cn083">

      http://www.wodutom.com/cn083,这是你自己的网址。

      06.打开窗口即最大化

      <script language="JavaScript">

      <!-- Begin

      self.moveTo(0,0)

      self.resizeTo(screen.availWidth,screen.availHeight)

      // End -->

      </script>

      07.能隐藏IFRAME的滚动条吗?我知道的三种方法:

      1. 设置iframe scrolling="no"

      2. 被包含页body应用overflow:hidden

      3. 被包含页的body标签加scroll="no"

      08.加入背景音乐

      <bgsound src="mid/windblue[1].mid" loop="-1"> 只适用于IE <embed src="music.mid" autostart="true" loop="true" hidden="true"> 对Netscape ,IE 都适用

      09.嵌入网页

      <iframe name="tt" src="01a.html" width="450" height="287" scrolling="Auto" frameborder="0"></iframe>

      10.跳转

      <meta http-equiv="refresh" content="3;URL=list.htm">

    11.滚动

      <MARQUEE direction=up height=146 onmouseout=start() onmouseover=stop() scrollAmount=4></marquee>

      12.细线分隔线

      <hr noshade size=0 color=#C0C0C0>

      13.过度方式

      <meta http-equiv="Page-Exit" content="revealTrans(Duration=3,Transition=5)">

      Duration的值为网页动态过渡的时间,单位为秒。

      Transition是过渡方式,它的值为0到23,分别对应24种过渡方式。如下表:

      0 盒状收缩 1 盒状放射

      2 圆形收缩 3 圆形放射

      4 由下往上 5 由上往下

      6 从左至右 7 从右至左

      8 垂直百叶窗 9 水平百叶窗

      10 水平格状百叶窗 11垂直格状百叶窗

      12 随意溶解 13从左右两端向中间展开

      14从中间向左右两端展开 15从上下两端向中间展开

      16从中间向上下两端展开 17 从右上角向左下角展开

      18 从右下角向左上角展开 19 从左上角向右下角展开

      20 从左下角向右上角展开 21 水平线状展开

      22 垂直线状展开 23 随机产生一种过渡方式

      15.如何控制横向和纵向滚动条的显隐?

      <body style="overflow-y:hidden"> 去掉x轴

      <body style="overflow-x:hidden"> 去掉y轴

      <body scroll="no">不显

      16.怎样在 FrontPage2000 中加入 Flash 动画?

      在 FrontPage2000 中,点击[插入]->[高级]->[插件],在弹出的窗口中,设置一下 Flash 文件的大小及其它信息,确定即可。

      17.加入注释的格式是:

      〈!-[注释内容…]--〉

      18.怎样在网页中加入 E-mail 链接并显示预定的主题?

      〈A href="mailto:Emailhost@263.net?subject=主题"〉……〈/a〉

      19.定义本网页关键字,可以在〈Head〉〈/Head〉中加入如下代码:

      〈meta name="Keywords" content="china,enterprise,business,net"〉

      Content 中所包含的就是关键字,你可以自行设置。

      这里有个技巧,你可以重复某一个单词,这样可以提高自己网站的排行位置,如:

      〈meta name="Keywords" content="china,china,china,china"〉

      20.IE5.0 的部分快捷键:

      A:打开查找功能:Ctrl+F

      关闭浏览器窗口:Ctrl+W

      打开地址栏下拉列表框:F4

      刷 新:F5

      将当前Web页保存到收藏夹列表:Ctrl+D

      打开当前 IE 窗口的一个拷贝:Ctrl+N

      停止下载当前网页:Esc

      光标迅速移动到网页的开头:Home

      光标迅速移动到网页的尾部:End

      打开新的地址键入窗口:Ctrl+O

      打开收藏夹:Ctrl+I

      打开历史记录文件夹:Ctrl+H

      打开浏览器设定的默认主页:Alt+HOME

      21.添加到收藏夹:

      〈a href="javascript:window.external.addFavorite('http://链接','说明');"〉添加到收藏夹〈/a〉

      22.设为首页:

      〈a href=# onclick=this.style.behavior='url(#default#homepage)';this.setHomePage('http://链接');〉设为首页〈/a〉

      23.定制浏览器地址栏前的小图标:

      A:在网页的〈head〉〈/head〉间加入以下语句:

      〈link rel="shortcuticon" href="http://…/icon.ico"〉

      即可。其中 icon.ico 为 16x16 的图标文件,颜色不要超过 16 色。

      24.把滚动条放在浏览器窗口的左边

      A:在 <body> 中加 dir=RTL,即 <body dir=RTL>。