点滴

BlogJava 首页 新随笔 联系 聚合 管理
  7 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
Java中对数据库的操作一般分为三个步骤
一,加载驱动程序
Class.forName("org.postgresql.Driver");
二,打开连接
String url="jdbc:postgresql:COREJAVA";
String username="dbuser";
String password="secret";
Connection conn=DriverManager.getConnection(url,username,password);
前面两个步骤非常的简单,对于任意的数据库来讲都是这些内容,而说道比较多的就是第三步了
三,对数据库进行操作
    显而易见对数据库的操作就是执行SQL命令,首先需要创建一个Statement对象。要创建statement对象,需要使用调用DriverManager.getConnection方法所获得的Connection对象。
    Statement stmt=conn.createStatatement();
    String command="UPDATE Books SET Price=Price-5.00 WHERE Title NOT LIKE '%Introduction%'";
然后调用Statement类中的executeUpdate方法:  stmt.executeUpdate(command);
    executeUpdate方法将返回受SQL命令影响的行数。列入,在先前的例子中调用本方法将返回那些降价5美元的图书的总数.
    executeUpdate方法既可以执行诸如INSERT,UPDATE和DELETE之类的操作,也可以执行诸如CREATE TABLE和DROP TABLE之类的数据命令。
但是,执行SELECT查询时必须使用executeQuery方法。另外还有一个execute方法可以执行任意的SQL语句。此方法通常只用于用户提供的交互式查询。 
    当我们执行查询操作时,通常最感兴趣的是查询结果。executeQuery方法返回一个ResultSet对象,可以通过它来每次移行地迭代遍历所有查询结果。    ResultSet rs=stmt.executeQuery("SELECT * FROM Books");
   
    另外当你看这点的时候,我可以告诉你SQL的数据类型和Java的数据类型并非完全一致,我不是很想完全列出所有的对照表,因为任意的书籍上面肯定都有相关的介绍。只是下面的这几种你最好还是记住,因为非常有可能就在你的程序中会出现错误,左边为SQL右边为Java数据类型
Interger或INT                                int
NUMERIC(m,n),DECIMAL(m,n)或DEC(m,n)          java.math.BigDecimal
FLOAT(n)                                     double
REAL                                         float
DOUBLE                                       double         
    下面介绍一下java.sql.Statement的常用方法,我觉得这个挺重要的
int  executeUpdate(String sql)
    执行字符串中指定的INSERT,UPDATE,DELETE等SQL语句。还可以执行数据定义语言(DLL)的语句,如CREATE TABLE.返回受影响的记录总数,如果是没有更新计数的语句,则返回-1.本着对大家和自己负责的任务我彻底用了这个函数,在执行INSERT,UPDATE,DELETE的操作的事后返回的的确是影响的函数,一般你执行一条INSERT语句的事后返回的肯定是1,此外当你执行CREATE TABLE操作的时候返回的是0.至于等于-1的情况我还没有遇到,等遇到的时候第一时间更新此文章。
 
boolean execute(String sqlStatement)
    执行字符串中指定的SQL语句。如果该语句返回一个结果集则该方法返回true;反之,返回false。使用getResultSet或getUpdateCount方法可以得到语句的执行结果。 

int getUpdateCount()
    返回受前一条更新语句影响的记录总数。如果前一条语句未更新数据库,则返回-1.对于每一条执行过的语句,该方法只能被调用一次。
ResultSet  getResultSet()
    返回前一条查询语句的结果集。如果前一条语句未产生结果集,则返回null值。对于每一条执行过的语句,该方法只能被调用一次。

接着简单的介绍一下PreparedStatement的用法吧,就不描述了仅给出代码,大家肯定都会明白的
   string  sql = "select * from people p where p.id = ? and p.name = ?";
   PreparedStatement pStmt=conn.prepareStatement(sql);
   pStmt.setint(1,id);
   pStmt.setstring(2,name);
   resultset rs = pStmt.executequery();
==========================================================================================
   pStmt = con.prepareStatement("insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)");
   pStmt.setString(1,var1);
   pStmt.setString(2,var2);
   pStmt.setString(3,var3);
   pStmt.setString(4,var4);
   pStmt.executeUpdate();



posted on 2007-09-14 16:06 developer 阅读(333) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: