JDBC

  Java数据库连接(Java Database connectivity)简称JDBC,是Java程序与数据库系统通信的标准API,它包含一组用Java语言编写的类和接口。以下以MySQL为例,介绍使用JDBC的一般步骤:

  •   1.  调用Class.forName()方法加载数据库驱动程序
  1. Class.forName("com.mysql.jdbc.Driver");
  2. 定义要连接数据库的地址URL,格式为:jdbc:<子协议><子名称>
    String mysqlURL="jdbc:mysql://host:port/dbName";
  3. 使用适当的驱动程序类建立与数据库的连接,调用DriverManager对象的getConnection()方法,获得一个Connection对象,它表示一个打开的连接
    Connection conn = DriverManager.getConnection(URL,"数据库用户名","密码");
  4. 创建语句对象Statement,使用Connection接口的createStatement方法创建一个Statement对象,该对象用于传递简单的不带参数的SQL语句给数据库管理系统来执行
    Statement stmt = conn.createStatement();

    使用Connection接口的prepareStatement方法创建一个PreparedStatement对象,该对象用于传递一个或多个输入参数的SQL语句,例如:

    PreparedStatement psm = conn.prepareStatement("INSERT INTO book(bookid,name) VALUES(?,?)");
    psm.setString(1, "9787208061644");
    psm.setString(2, "追风筝的人");

    使用Connection接口的prepareCall方法创建一个CallableStatement语句对象,该对象用于调用存储过程,例如:

    CallableStatement csm = conn.prepareCall("{call validate(?,?)}");
    csm.setString(1, "9787208061644");
    csm.setString(2, "追风筝的人");
  5. 执行语句,Statement接口提供了3个方法执行SQL语句,分别是executeQuery、executeUpdate和execute。
    1. executeQuery用于执行SELECT语句,并返回单个结果集,保存在ResultSet对象中,如:
      String sql = "SELECT * FROM book";
      ResultSet rd = stmt.executeQuery(sql);
    2. executeUpdate用于执行SQL DML语句,即INSERT、UPDATE和DELETE语句,此时返回SQL语句执行时数据表受影响的行数,返回值是一个整数。executeUpdate方法还可用于执行SQL DDL语句,如CREATE TABLE、DROP TABLE等,此时返回值为0,例如:
      String sql = "DELETE FROM book WHERE bookid="+"‘12‘";
      int n = stmt.executeUpdate(sql);
    3. execute方法既可执行查询语句,也可以执行更新语句,常用于处理类型未知的SQL语句
  6. 对返回的结果集ResultSet对象进行处理,ResultSet对象包含了SQL语句的执行结果,它使用一组get方法实现对结果行中每列数据的访问。使用next方法用于移动到ResultSet的下一行,使其成为当前行。例如,下面代码用来显示结果集中所有记录的前两列:
    String sql = "SELECT * FROM book";
    ResultSet rs = stmt.executeQuery(sql);
    //对结果集进行迭代
    while(rs.next()){
        bookid = rs.getString(1);
        name = rs.getString(2);
        System.out.println(bookid+","+name);
    }
  7. 关闭连接,操作完成后要关闭所有的JDBC对象,以释放资源。包括:关闭结果集,关闭语句对象和连接对象。归纳起来后,一般代码如下:
    String dbDriver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://host:port/dbName";
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    Class.forName(dbDriver);
    conn = DriverManager.getConnection(url,"数据库用户名","密码");
    stmt = conn.createStatement();
    rs = stmt.executeQuery("SELECT * FROM tablename");
    while(rs.next()){
        //读取数据操作
    }
    //关闭连接
    rs.close();
    stmt.close();
    conn.close();

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。