jdbc编程步骤

第一步:注册一个Driver   

      所谓注册驱动本质上就是要加载Driver接口的具体实现类。完成这个功能有三种方式:
     方式一(重点):   
        Class.forName(“oracle.jdbc.OracleDriver”);
     方式二(了解):
        Driver drv = newOracle.jdbc.driver.OracleDriver();
        DriverManager.registerDriver(drv);
     方式三(了解):编译时在虚拟机中加载驱动  
        javac –Djdbc.drivers=
                  oracle.jdbc.driver.OracleDriver xxx.java
        java –D jdbc.drivers=驱动全名 类名
        使用系统属性名,加载驱动 -D 表示为系统属性赋值

第二步:获取数据库连接(Connection)

Connection conn=
      DriverManager.getConnection(url,username,password);
url:指明所要连接的数据资源所在的位置信息。不同的数据库有  
           不同的写法,例如:    
        oracle数据库 --》 jdbc:oracle:thin:@ip:1521:SID 。
       其中jdbc:oracle:thin称为协议(thin是指Oracle的驱动类型Type IV); ip则是数据库服务器所在的主机的ip地址;端口默认是1521;SID通俗的讲是指数据库的名字,不同版本的oracle软件SID可能有所不同
username:用户名
password:密码

第三步:创建Statement

   Statement  stm = conn.createStatement();

         Statement 接口代表了一个数据库的状态,实际负责将需要执行的Sql命令由java客户端传送给数据库服务器执行,以实现对数据库的操作。可以将其看做是一个sql命令的传送工具。

第四步:通过Statement执行Sql语句

在Statement接口里有三个类似的执行方法:
    1)Statement.execute(sql):可以用来执行任意SQL命令。方法返回值为
          boolean值,表示所执行的sql是否有结果集返回。true代表有结果集返回。
         注意:虽然可以执行所有sql,但一般主要用来执行DDL DCL语句。

    2)Statement.executeUpdate(sql):只用来执行INSERT UPDATE和DELETE命
          令。方法返 回值是一个int值,表示sql命令执行后影响的记录数。
         强调:返回值的作用,经常用来判断实际更新值是否与预期更新值相符

    3)Statement.executeQuery(sql):只用来执行SELECT查询命令。方法返回值
         是ResultSet接口类型对象,代表查询结果。如果想得到具体数据,需要解析
          结果集对象.
第五步:处理结果集ResultSet

ResultSet 接口是查询结果集接口,它对返回的结果集进行处理。ResultSet 是程序员进行JDBC 操作的必需接口。
遍历结果集(ResultSet)的方法:

    1)resultSet.next():在结果集里,游标(Cursor)由来指向所要遍历的记录。最开始游标(Cursor)指向所有查询结果的最上方。当调用rs.next()返回为true时表示有下一条记录,并会将游标移至下一条记录;当调用rs.next()返回为false表示已经遍历至结果集的末尾。
    注意:无论结果集里是否有数据,都要至少调用一次next(),确保指针下移。否则运行时,会出现异常。
    2)resultSet.get**():取得某一列值
          当指针移动到正确的记录行后,我们就可以获取当前行数据了。可以根据该列的数据类型调用相应的get[TYPE]方法取得该列的值。例如:如果需要获取第二个字段的字符串值则我们可以调用String str = resultSet.getString(2);    
遍历ResultSet需要注意的问题:
尽可能使用列名代替*。
当已知查询返回单条记录时使用if(rs.next())即可,查询返回多条记录时使用while(rs.next())遍历结果集
rs.getString(1)效果等价于rs.getString("username")
如果数字类型列里数据库中保存值为NULL,JDBC实际会自动在get时将此列转换为0,可以使用rs.wasNull()来判断最近执行的一次get操作是否返回的是NULL值
在开发对运算结果精度要求较高的应用(如金融,银行)时,避免使用double,float,应转用BigDecimal。

第六步:关闭数据库连接(释放资源)
   rs.close(); sta.close(); con.close();

注意:
          ResultSet Statement Connection 是依次依赖的,要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和 ResultSet 是需要连接时才可以使用的,所以在使用结束之后有可能其它的 Statement 还需要连接,所以不能现关闭 Connection。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBCJava Database Connectivity)是Java语言访问关系型数据库的标准API,下面是JDBC编程的基本步骤: 1. 加载数据库驱动:使用Class.forName()方法加载数据库驱动程序。 2. 建立数据库连接:使用DriverManager.getConnection()方法建立与数据库的连接。 3. 创建SQL语句:使用SQL语句或PreparedStatement预处理语句操作数据库。 4. 执行SQL语句:使用Statement或PreparedStatement接口的execute()或executeUpdate()方法执行SQL语句。 5. 处理查询结果:使用ResultSet接口获取查询结果并进行相应的处理。 6. 关闭连接:使用Connection接口的close()方法关闭数据库连接。 以下是一个简单示例: ```java import java.sql.*; public class JDBCDemo { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { //1. 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //2. 建立数据库连接 String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); //3. 创建SQL语句 String sql = "SELECT * FROM user"; //4. 执行SQL语句 stmt = conn.createStatement(); rs = stmt.executeQuery(sql); //5. 处理查询结果 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); System.out.println("id: " + id + ", name: " + name); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { //6. 关闭连接 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上是JDBC编程的基本流程,当然在实际应用中还需要注意事务处理、连接池等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值