第十七部分_详解JDBC

JDBC(Java DataBase Connectivity)

  • 是一种用于执行SQL语句的Java API
  • 由一组用Java编程语言编写的类和接口组成
  • 为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序

四类JDBC驱动程序(了解)

  • JDBC-ODBC桥+ODBC驱动程序:利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到该驱动程序的每个客户机上
  • 本地API:部分用Java来编写的驱动程序,这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、DB2或其他DBMS的调用。注意,像桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上
  • JDBC网络纯Java驱动程序(使用频繁):这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上
  • 本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议

数据库连接的一般过程(重要)

  • 载入JDBC驱动程序(jar)
  • 定义连接URL(特定数据库)
  • 建立连接(Connection)
  • 创建Statement对象(JDBC顶层接口)
  • 执行查询或更新
  • 结果处理
  • 关闭连接

加载驱动程序

  • 使用JDBC-ODBC桥驱动程序的语句如下:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  • 使用Oracle9i的JDBC驱动程序的语句如下:Class.forName("oracle.jdbc.driver.OracleDriver");

建立JDBC连接

  • DriverManager类的getConnection()方法:public static Connection getConnection(String url, String user, String password) throws SQLException
  • Oracle提供了两种JDBC驱动程序

  最后,不要忘记关闭Connection对象,释放占用的资源:public void close() throws SQLException

发送SQL语句

  • Statement对象用于将SQL语句发送到数据库中。存在三种Statement对象:Statement;PreparedStatement(从Statement继承而来);CallableStatement(从PreparedStatement继承而来)
  • 由Connection的createStatement()方法创建:public Statement createStatement() throws SQLException

id name
1  张三
2  李四


ResultSet rs = st.executeQuery("select * from person");

rs.next(); // 通常用来循环遍历表,可以看作一个指针指向当前数据行,默认指向有效数据行的上一行

int id = res.getInt(1); // 取得当前行中第一列的值,下同
int id2 = res.getInt("id");

String name = rs.getString(2);
String name2 = rs.getString("name");

PreparedStatement ps = con.prepareStatement("insert into person(id, name) values (?,?)");

ps.setInt(1, 5); // 函数调用的类型根据字段中问号对应的类型,这里1代表第一个问号,5是设置的值
ps.setString(2, "wangwu");

ps.execute(); // 表示真正执行sql语句

  

原文地址:https://www.cnblogs.com/Code-Rush/p/4671492.html