版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JDBC Java数据库编程接口,教材第12章,12.1 JDBC概述,在Java程序中,连接数据库采用JDBC(Java DataBase Connectivity)技术。 JDBC是由Sun公司提供的与平台无关的数据库连接标准,它将数据库访问封装在少数几个方法内,使用户可以极其方便地查询数据库、插入新的数据、更改数据。 JDBC是一种规范,目前各大数据库厂商基本都提供JDBC驱动程序,使得Java程序能独立运行于各种数据库之上。,12.1 JDBC概述,Java application,JDBC Driver Manager,JDBC API,JDBC Driver (数据库厂家提供),J
2、DBC Driver API,DBMS,JDBC驱动程序类型,SUN定义的JDBC驱动程序类型: Type1: JDBC-ODBC桥作为JDK1.1后的一部分,是sun.jdbc.odbc包的一部分Application-JDBC-ODBC Bridge(Type1 jdbc driver)-JDBC-ODBC Library-ODBC Driver-Database通过ODBC驱动程序提供JDBC访问,缺点是必须加载到目标机器上,并且ODBC-JDBC转换影响效率。适用于快速的原型系统,没有提供JDBC驱动的数据库如Access。 Type2: Java to Native API利用开发商
3、提供的本地库来直接与数据库通信。Application-JDBC Driver(Type2 jdbc driver)-Native Database library-Database比Type1性能略好。,JDBC驱动程序类型,Type3: Java to netApplication-Jdbc Driver(Type3 jdbc driver)-java middleware-JDBC Driver-Database具有最大的灵活性,通常由那些非数据库厂商提供,是四种类型中最小的。 Type4: Java to native dababaseApplication-Jdbc driver(t
4、ype4 jdbc driver)-database engine-database最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力。,JDBC的工作过程,JDBC的工作过程 与数据源建立连接:通过DriverManager类建立与数据源的连接,这个连接作为数据操作的起点,也是连接会话事务操作的基础; 向数据库发出SQL命令:通过Statement类或者PreparedStatement类向数据源发送SQL命令,然后再调用类中的execute方法来执行SQL命令; 处理数据源返回的结果:对于DDL/DML操作,返回被修改的记录数,对于查询操作,返回结果集Re
5、sultSet,通过遍历结果集可以获得所需的查询结果。,数据库连接,每个JDBC应用程序至少要有一个JDBC驱动程序版本,JDBC驱动程序是Driver接口类的实现。 Driver类是驱动程序厂家实现的接口,Driver使DriverManager和JDBC应用程序层可以独立于具体的数据库系统。,应用程序,JDBC,Oracle 驱动程序,MySQL 驱动程序,JDBC功能结构图,JDBC API(类),java.sql.DriveManager 负责装载、拆除驱动程序,负责连接驱动程序。 java.sql.Connection 实现对某一数据库的连接功能(建立连接)。 java.sql.St
6、atement 在一个给定的连接中作为执行SQL语句的容器。 java.sql. ResultSet 保存SQL语句执行结果 java.sql.PreparedStatement 用于执行预编译的SQL声明 java.sql.CallableStatement 用于执行数据库中存储过程的调用,12.2 JDBC开发一般步骤,本节首先介绍数据库编程的一般过程,然后通过几个有代表性的实例介绍数据库编程方法。 JDBC开发一般步骤: 加载驱动程序; 连接数据库; 建立与执行SQL语句; 对返回结果集进行操作; 关闭对象资源。,12.2 JDBC开发一般步骤,加载驱动程序 要连接数据库,首先要加载JD
7、BC驱动程序。加载JDBC驱动程序的语句如下: Class.forName(JDBC驱动程序名) ; 或 Class.forName(JDBC驱动程序名).newInstance(); 例如,要加载JDBC-ODBC桥驱动程序,使用以下语句; Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 使用JDBC-ODBC桥驱动程序,可以通过ODBC数据源连接数据库。,12.2 JDBC开发一般步骤,连接数据库 加载了JDBC驱动程序后,便可以连接数据库了。连接数据库使用以下语句; Connection 连接变量=DriverManager. getConn
8、ection(数据库URL,用户帐号,用户密码); 数据库URL由三部分组成: jdbc:subProtocol:subName 即主通信协议、子通信协议和子名称。 例如 Connection conn=DriverManager. getConnection(“jdbc:odbc:myDB”, “li”, “1234”); 如果连接成功,对数据库的任何操作都可以通过conn来进行了。,12.2 JDBC开发一般步骤,建立与执行SQL语句 要对连接的数据库进行查询、更改或添加数据,可通过SQL语句并创建相关对象(Statement,PreparedStatement 或CallableStat
9、ement )。 建立Statement对象。执行SQL语句需要建立Statement对象变量。通过Connetion对象createStatemnet()方法创建该对象的语句如下: Statement stmt = conn.createStatement(); 执行SQL语句。建立上述对象之后,有3种方法执行SQL语句,分别是: executeQuery(String sql); /执行select的SQL查询语句,该语句返回单个 ResultSet 对象。 。 executeUpdate(String sql); /执行insert、delete、update更新语句,以及DDL语句,该
10、语句返回整数。 execute(String sql); /执行给定的 SQL 语句,该语句可能返回多个结果。 例如: stmt.executeUpdate(insert into employee values(2020,翟建设,男,746); String sql = SELECT * FROM employee WHERE sex=男 ”; ResultSet rs = stmt.executeQuery( sql );,12.2 JDBC开发一般步骤,对返回结果集进行操作 ResultSet对象。用来保存查询的所有结果数据。通过Statement对象的executeQuery()方法,
11、返回一个ResultSet对象,例如: String sql =SELECT * FROM employee WHERE sex=男 ” ResultSet rs = stmt.executeQuery (sql); ResultSet对象以类似表中记录的组织方式来组织查询到的结果。使用下列的循环语句对查询结果逐行处理。 while ( rs.next() ) /对每行记录进行处理,例如: System.out.println(rs.getInt(1) + t + rs.getString(2); ,12.2 JDBC开发一般步骤,关闭对象,释放资源 对数据库操作完成后,应该使用对象的clos
12、e()方法将操作数据库的对象资源关闭。其句型是: 对象名.close() 例如,要关闭前面建立的对象资源,使用以下语句: rs.close(); stmt.close(); conn.close();,12.3 JDBC开发实例,例:查询数据库 假定对数据库myDB.mdb已经建立了数据源myDB,myDB.mdb中有一个表employee。该实例利用JDBC-ODBC桥驱动程序,访问Access数据库myDB.mdb,显示表中所有职员的no(编号)、name(姓名)、sex(性别)和salary(工资)。 import java.sql.*; class Query public stati
13、c void main(String args ) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(SQLException:+ce.getMessage(); ,1 查询数据库,1查询数据库(续),try Connection con = DriverManager.getConnection(jdbc:odbc:myDB); Statement stmt = con.createStatement(); String sqlstr =
14、select * from employee; ResultSet rs = stmt.executeQuery( sqlstr ); while ( rs.next() ) System.out.println(编号 + rs.getString(no) + t + 姓名 + rs.getString(name) + t + 性别 + rs.getString(sex) + t + 工资 + rs.getFloat(salary) ); rs.close(); stmt.close(); catch (SQLException e) System.out.println(SQLExcepti
15、on:+e.getMessage(); ,2插入记录,假定对数据库myDB.mdb已经建立了数据源myDB,myDB.mdb中有一个表employee,该实例利用JDBC-ODBC桥驱动程序,访问Access数据库myDB.mdb,在表中插入2条记录,其数据分别为:2001,邢雪花,女,650和2020,翟建设,男,746。 import java.sql.*; class Insert1 public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFo
16、undException ce) System.out.println(SQLException:+ce.getMessage(); ,2插入记录(续),try Connection con = DriverManager.getConnection(jdbc:odbc:myDB,li,1234); Statement stmt = con.createStatement(); String sqlstr = insert into employee values(2001, 邢雪花,女,650); stmt.executeUpdate( sqlstr ); stmt.executeUpdat
17、e(insert into employee values(2020,翟建设,男,746); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:+e.getMessage(); ,3修改记录,该实例利用JDBC-ODBC桥驱动程序访问Access数据库myDB.mdb,修改表中2条记录,将name为翟建设的记录的no改为3000,将no值为2001记录中的salary改为900。 import java.sql.*; class Update1 public static void
18、 main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(SQLException:+ce.getMessage(); ,try Connection con = DriverManager.getConnection( jdbc:odbc:myDB,li,1234); Statement stmt = con.createStatement(); String sql = update employee set
19、 no= 3000 + where name= 翟建设; stmt.executeUpdate(sql); sql = update employee set salary=900 +where no = 2001; stmt.executeUpdate(sql); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:+e.getMessage(); ,3修改记录(续),4.删除记录,该实例利用JDBC-ODBC桥驱动程序,访问Access数据库mdDB.mdb,删除employee
20、表中no值为1004的记录。 import java.sql.*; class Delete public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(SQLException: + ce.getMessage(); ,4.删除记录(续),try Connection con = DriverManager.getConnection(jdbc:odbc:myDB,li,123
21、4); Statement stmt = con.createStatement(); String sql = delete from employee where no=1004; stmt.executeUpdate(sql); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:+e.getMessage(); ,5.建立表,该实例利用JDBC-ODBC桥驱动程序访问Access数据库mdDB.mdb,建立表student,其中有s_num(学号)、s_name(姓名)和sc
22、ore(成绩)3列数据。给表中输入一条记录,其数据为:9901,张学军,85。 import java.sql.*; class Create public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(SQLException:+ce.getMessage(); ,5.建立表(续),try Connection con = DriverManager.getConnection
23、(jdbc:odbc:myDB,li,1234); Statement stmt = con.createStatement(); String sql= create table student (s_num char(4), s_name char(6) null, score int); stmt.executeUpdate( sql ); sql = insert into student(s_num, s_name,score) values(9901, 张学军,85); stmt.executeUpdate( sql ); stmt.close(); con.close(); ca
24、tch (SQLException e) System.out.println(SQLException:1 +e.getMessage(); ,6.删除表,该实例利用JDBC-ODBC桥驱动程序访问Access数据库myDB.mdb,删除表student。 import java.sql.*; class Drop public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(S
25、QLException:+ce.getMessage(); ,try Connection con = DriverManager.getConnection(jdbc:odbc:myDB,li,1234); Statement stmt = con.createStatement(); String sql = drop table student; stmt.executeUpdate( sql ); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:1 +e.getMessa
26、ge(); ,6.删除表(续),7取表中各列名称,该实例利用JDBC-ODBC桥驱动程序访问Access数据库myDB.mdb,取表student中各列名称。 import java.sql.*; class Meta public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(SQLException:+ce.getMessage(); ,try Connection con
27、= DriverManager.getConnection(jdbc:odbc:myDB,li,1234); Statement stmt = con.createStatement(); String sqlstr = SELECT * FROM student ; ResultSet rs = stmt.executeQuery ( sqlstr ); ResultSetMetaData rsmd = rs.getMetaData(); for(int i = 1; i = rsmd.getColumnCount(); i+) if ( i=1 ) System.out.print( rs
28、md.getColumnName(i) ); else System.out.print(,+ rsmd.getColumnName(i); rs.close(); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:1 +e.getMessage(); ,7取表中各列名称(续),12.4 JDBC中的主要接口和类,Java应用程序访问数据库主要是通过JDBC API实现的,通过下面几个重要接口和类: DriverManager类 Connection接口 Statement接口 P
29、reparedStatement接口 CallableStatement接口 ResultSet接口 ResultSetMetaData接口 DatabaseMetaData接口,1. DriverManager类,DriverManager类是Java.sql包中用于数据库驱动程序管理的类,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接,也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。 DriverManager 类直接继承自java.lang.object,其主要成员方法: static Connection getConnection(S
30、tring url):通过指定的URL创建数据库的连接; static Connection getConnection(String url,String user,String password):通过指定的URL及用户名、密码创建数据库的连接; static void registerDriver(Driver driver):注册数据库驱动程序。,2. Connection接口,Connection接口是用来表示数据库连接的对象,对数据库的一切操作都是在这个连接的基础上进行的。 Connection接口的主要成员方法: Statement createStatement():创建一个S
31、tatement对象; Statement createStatement (int resultSetType, int resultSetConcurrency):创建一个Statement对象,它将生成具有特定类型和并发性的结果集,其中resultSetType有以下几种值: TYPE_FORWARD_ONLY:结果集不可滚动; TYPE_SCROLL_INSENSITIVE:结果集可滚动,不反映数据库的变化; TYPE_SCROLL_SENSITIVE:结果集可滚动,反映数据库的变化。 resultSetConcurrency有以下几种值: CONCUR_READ_ONLY:不能用结果
32、集更新数据; CONCUR_UPDATABLE:能用结果集更新数据。 boolean getAutoCommit():返回Connection类对象的AutoCommit状态; void setAutoCommit(boolean autoCommit):设定Connection类对象的AutoCommit状态,为true时,SQL语句组被提交作为一个单独的事务;否则SQL语句组的事务分组由commit或roolback语句确定。,2. Connection接口(续),Connection接口的主要成员方法: void commit():提交对数据库的改动并释放当前连接持有的数据库的锁; vo
33、id rollback():回滚当前事务中的所有改动并释放当前连接持有的数据库的锁; void setReadOnly():设置连接的只读模式; void close():立即释放连接对象的数据库和JDBC资源。 boolean isClosed():测试连接是否已经关闭。 DatabaseMetaData getMetaData():建立DatabaseMetaData类对象。 PreparedStatement prepareStatement(String sql):建立PreparedStatement对象。,3. Statement接口,Statement接口用于在已经建立的连接的基
34、础上向数据库发送SQL语句的对象。它只是一个接口的定义,其中包括了执行SQL语句和获取返回结果的方法。 有3种 Statement 对象:Statement、PreparedStatement(继承自Statement )和 CallableStatement(继承自PreparedStatement)。它们都作为在给定连接上执行 SQL 语句的容器,每个都专用于发送特定类型的 SQL 语句: Statement 对象:用于执行不带参数的简单 SQL 语句; PreparedStatement 对象:用于执行带或不带 IN 参数的预编译 SQL 语句; CallableStatement 对象
35、:用于执行对数据库已存储过程的调用。,3. Statement接口,创建statement对象的方法如下: Statement stmt = con.createStatement(); Statement接口定义中包括的主要方法 ResultSet executeQuery(String sql):使用Select命令对数据库进行查询,返回结果集; int executeUpdate(String sql):使用Insert/Delete /Update/DDL 命令对数据库进行增、删、改、建等操作; boolean execute(String sql):执行SQL语句。 void clo
36、se():关闭Statement对象对数据库的联机。 void addBatch(String sql):在Statement语句中增加用于数据库操作的SQL批处理语句。 Connection getConnection():获取对数据库的连接。,4. PreparedStatement接口,PreparedStatement接口和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好等待使用,当有单一的SQL指令需多次执行时,用PreparedStatement会比Statement效率更高。 PreparedStatement接口的主要方法:
37、 ResultSet executeQuery(String sql):使用Select命令对数据库进行查询,返回结果集; int executeUpdate(String sql):使用Insert/Delete /Update/DDL 命令对数据库进行增、删、改、建等操作; void setXXX(int parameterIndex,XXX x):给PreparedStatement类对象的IN参数设定为XXX类型的值。这里XXX可为int、float、NULL、String、Date和Time。,5. CallableStatement接口,CallableStatement接口用于执
38、行对数据库已存储过程的调用。在CallableStatement对象中,有一个通用的成员方法call,这个方法以名称的方式调用数据库中的存储过程。在数据库调用过程中,可以通过设置IN参数向调用的存储过程提供执行所需的参数。另外,在存储过程的调用中,通过OUT参数获取存储过程的执行结果。 创建CallableStatement对象的方法如下: CallableStatement cstmt = conn.prepareCall(“call procedure_name(?,?)”); 向存储过程传递IN参数值的方法是通过setXXX()语句完成的。例如: cstmt.setByte(1,25);
39、 cstmt.setInt(2,64);,5. CallableStatement接口(续),例14-6 利用JDBC接口调用数据库的存储过程Query_Student。 存储过程Query_Studen.sql的脚本如下: USE study GO CREATE PROCEDURE Query_Study2 ( no char(6), name char(20) OUTPUT, dept char(10) OUTPUT ) AS SELECT name=sname,dept=sdept FROM student WHERE sno=no,5. CallableStatement接口(续),/
40、JdbcCallProcedure.java的代码 import java.sql.*; import javax.swing.*; class jdbcCallProcedure public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); String DATABASE_URL= jdbc:odbc:Driver=SQL Server;Server=ZGZ1 + + SQLEXPRESS;uid=sa;pwd=sa;Database=study; Connection conn =
41、 DriverManager.getConnection(DATABASE_URL);,CallableStatement callStmt= conn.prepareCall( call Query_Student(?,?,?)” ); callStmt.setString(1,20001); /设置传入的第一个输入参数(?)值是20001 callStmt.registerOutParameter(2,java.sql.Types.VARCHAR) callStmt.registerOutParameter(3,java.sql.Types.VARCHAR); callStmt.execu
42、te(); String b1 = callStmt.getString(2); String b2 = callStmt.getString(3); System.out.println(b1); System.out.println(b2); callStmt.close(); conn.close(); catch ( SQLException sqlException ) . ,6. ResultSet接口,ResultSet接口负责存储查询数据库的结果。并提供一系列的方法对数据库进行新增、删除和修改操作;也负责维护一个记录指针(Cursor),记录指针指向数据表中的某个记录,通过适当
43、的移动记录指针,可以随心所欲的存取数据库,加强程序的效率。 ResultSet接口主要方法: boolean absolute(int row):移动记录指针到指定的记录; void beforeFirst( ):移动记录指针到第一条记录之前; void afterLast( ):移动记录指针到最后一条记录之后; boolean first( ):移动记录指针到第一条记录; boolean last( ):移动记录指针到最后一条记录; boolean next( ):移动记录指针到下一条记录; boolean previous( ):移动记录指针到上一条记录; int getXXXX(int
44、columnIndex):取得指定字段的值; ResultSetMetaData getMetaData( ):取得ResultSetMetaData类对象。,7. ResultSetMetaData接口,ResultSetMetaData接口的对象保存了所有ResultSet类对象中关于字段的元信息,并提供许多方法来取得这些信息。 ResultSetMetaData接口中的方法: int getColumnCount():取得ResultSet对象的字段个数; int getColumnDisplaySize():取得ResultSet对象的字段长度; int getColumnName(i
45、nt column):取得ResultSet对象的字段名称; int getColumnTypeName():取得ResultSet对象的字段类型名称; int getTableName(int column):取得ResultSet对象的字段所属数据表的名称。,8. DatabaseMetaData接口,DatabaseMetaData接口保存了数据库的所有特性,并且提供许多方法来取得这些信息。 DatabaseMetaData类的主要方法: String getDatabaseProductName():取得数据库名称; String getURL():取得连接数据库的JDBCURL; S
46、tring getUserName():取得登录数据库的使用者账号。,12.5 数据库连接之本地驱动程序,下载相应数据库的本地JDBC驱动程序 配置ClassPath 配置IDE的运行环境,数据库连接例(SQLServer),SQLServer安装后,设置ClassPath,例如: ClassPathJDBC驱动路径sqljdbc4.jar 注册(装入) SQLServer Jdbc驱动程序 String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; Class.forName(driverName); 建立连接(到指定数
47、据库) /服务器和数据库连接字符串 String dbUrl = jdbc:sqlserver:/localhost/SQLEXPRESS:1433;databaseName=study; String uid = root; String pwd = 1234; conn = DriverManager.getConnection(dbUrl,uid,pwd);,与SQLServer建立简单连接,使用 Microsoft SQL Server JDBC Driver 与 SQL Server 数据库建立简单连接的快速入门指导。在连接到 SQL Server 数据库之前,必须首先在本地计算机或
48、服务器上安装 SQL Server,并且必须在本地计算机上安装 JDBC 驱动程序。 选择正确的 JAR 文件 Microsoft SQL Server JDBC Driver 提供两个类库文件:sqljdbc.jar 和 sqljdbc4.jar,具体使用哪个文件取决于首选的 Java 运行时环境 (JRE) 设置。 设置 Classpath JDBC Driver 并未包含在 Java SDK 中。如果要使用该驱动程序,必须将 classpath 设置为包含 sqljdbc.jar 文件或 sqljdbc4.jar 文件。如果 classpath 缺少 sqljdbc.jar 项或 sql
49、jdbc4.jar 项,应用程序将引发“找不到类”的常见异常。 sqljdbc.jar 文件和 sqljdbc4.jar 文件的安装位置如下: sqljdbc_sqljdbc.jar sqljdbc_sqljdbc4.jar 下面是用于 Windows 应用程序的 CLASSPATH 语句示例: CLASSPATH =.;C:Program FilesMicrosoft SQL Server JDBC Driversqljdbc_3.0enusqljdbc.jar,与SQLServer建立简单连接,在 IDE 中运行的应用程序 每个 IDE 供应商都提供了在 IDE 中设置 classpath
50、 的不同方法。仅在操作系统中设置 classpath 将无法正常工作。必须将 sqljdbc.jar 或 sqljdbc4.jar 添加到 IDE classpath。,数据库连接例(MySql),MySql安装后,设置ClassPath,例如: ClassPathJDBC驱动路径mysql-connector-java-5.1.18-bin.jar 注册(装入)MySql Jdbc驱动程序 String driverName = com.mysql.jdbc.Driver; Class.forName(driverName); 建立连接(到指定数据库) /服务器和数据库连接字符串 Strin
51、g dbUrl = jdbc:mysql:/localhost/study; String uid = root; String pwd = 1234; conn = DriverManager.getConnection(dbUrl,uid,pwd);,Oracle数据库开发应用实例,利用前面建立的SQL Server的数据库Study和ODBC数据源StudyDSN,安排了对数据库进行插入、修改、删除和查询的Java程序设计。这些程序设计实例在设计时,考虑了通用性原则,应用了通用性的程序设计技术。其好处是:你可以利用本节示范的程序设计例子很容易编写访问其它数据库的Java应用程序。,数据库
52、连接例(Oracle),Oracle安装后,设置classpath,例如: CLASSPATHc:oracleora92jdbclibojdbc14.jar 注册(装入)oracle jdbc驱动程序 语法:DriverManager.registerDriver(Driver driver) 例:DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver(); 建立连接(到指定数据库) Connection con = DriverManager.getConnection (jdbc:oracle:thin:166.1
53、11.7.248:1521:o8i2, scott, tiger); 该方法将挑选一个合适的已注册的JDBC驱动程序,执行sql语句Statement类,建立Statement类对象(sql容器) Statement stmt = conn.createStatement(); 查询: ResultSet rs = stmt.executeQuery(select ename,age from emp); 修改: int count = stmt.executeUpdate(update emp set age = 30 where ename=MARTIN ) INSERT, UPDATE
54、or DELETE (返回行数) DDL 语句(返回0),ResultSet类的方法,移动指针 boolean rs.next() ; 取结果集当前行的数据: 语法:getXXX(列序号或列名) /方法名的重载 String rs.getString(ename) ; int rs.getInt (age) ; 或 int rs.getInt (2) ;,访问数据库例,import java.sql.* ; class Test public static void main (String args) throws SQLException DriverManager.registerDriver(new oracle.jdbc.OracleDriver(); Connection con = DriverManager.getConnection ( jdbc:oracle:thin:166.111.7.248:1521:o8i2, 帐号 , 密码); Statement stmt=con.createStatement(); /创建Statement对象 System.out.println(-查询并显示所有系的学生-); ResultSet rs=stmt.execu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年汽车销售店员工劳动合同三篇
- 工地物资采购制度
- 带量采购药品管理制度
- 农商行采购评审制度
- 汽修厂配件采购登记制度
- 广东医用耗材采购制度
- 南通日常计算机采购制度
- 2026年河北省保定市高碑店市初中学业水平摸底考试地理试卷(无答案)
- 数字化转型下NS化妆品公司供应商管理策略的创新与实践
- 数字化转型下HP会计师事务所审计程序的创新与优化
- 黄金冶炼项目可行性研究报告
- 胆囊癌完整版本
- 第15课《十月革命与苏联社会主义建设》中职高一下学期高教版(2023)世界历史全一册
- 十期牛黄清心丸
- 缠论-简单就是美
- JT-T-798-2019路用废胎胶粉橡胶沥青
- 手术室应对特殊感染手术的应急预案
- 2.1科学探究感应电流的方向课件-高二物理(2019选择性)
- (正式版)JBT 14793-2024 内燃机质量评价规范
- GB/T 42793-2024航空用铝合金板材通用技术规范
- 2022届上海高考语文调研试测卷详解(有《畏斋记》“《江表传》曰…”译文)
评论
0/150
提交评论