首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java数据库编程中的几个常用技巧,该如何解决

2012-01-29 
Java数据库编程中的几个常用技巧下面是Java数据库编程中的几个常用技巧:1、java数据库操作基本流程  2、几个

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、inssert、drop等)statement.close();  
     2)用PreparedStatement来执行sql语句  
String   sql;  
sql   =   "inssert   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、inssert等或兼有  
     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(inssert   into   user...);  
sm.executeUpdate();  
sm.close();  
sm   =   cn.createStatement( "inssert   into   corp...);  
sm.executeUpdate();  
sm.close();  

     3、提交  
cn.commit();  

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


转http://www.cnsdn.com.cn/inc/show.asp?id=558
    转http://www.cnsdn.com.cn/inc/show.asp?id=558

[解决办法]
接分
[解决办法]
mark
[解决办法]
mark
[解决办法]
支持!谢谢!
[解决办法]
感谢楼主啊。。
好几天没见了。。。
呵呵。。。

热点排行