第03章 JDBC:数据库连接
JDBC连接SQLServer的几种方式

JDBC连接SQLServer的⼏种⽅式第⼀种:JDBC-ODBC数据库连接桥(需要配置ODBC数据源,不需下载驱动)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con=DriverManager.getConnection("jdbc:odbc:数据源名称","⽤户名","密码");第⼆种:利⽤Microsoft提供的驱动程序(XP⽤户需要打SP3的补丁,需要下载驱动)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=数据库名","⽤户名","密码");第三种:利⽤第三⽅提供的驱动程序(需要下载驱动)Class.forName("net.sourceforge.jtds.jdbc.Driver");con=DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/数据库名;user=⽤户名;password=密码");第四种:在Struts下配置数据源(其实这种⽅式跟上边的不属于⼀种类型)<data-sources><data-source key="在Struts中数据源的名称" type="mons.dbcp.BasicDataSource"><set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" /><set-property property="url" value="jdbc:odbc:数据源" /><set-property property="username" value="⽤户名" /><set-property property="password" value="密码" /></data-source></data-sources>。
jdbc连接格式

jdbc连接格式JDBC(Java Database Connectivity)是用于连接Java 应用程序和数据库的API。
它提供了一组标准的接口和类,使得开发者能够使用统一的方式与不同类型的数据库进行交互。
JDBC 连接的基本格式如下:```javaString url = "jdbc:数据库类型://数据库地址:端口/数据库名称";String username = "用户名";String password = "密码";try {// 加载JDBC 驱动程序Class.forName("驱动程序类名");// 创建数据库连接Connection connection = DriverManager.getConnection(url, username, password);// 执行数据库操作Statement stmt = connection.createStatement();ResultSet rs = stmt.executeQuery("SQL 查询语句");// 处理查询结果while (rs.next()) {// 访问结果集中的数据String column1 = rs.getString("列名1");int column2 = rs.getInt("列名2");}// 关闭连接rs.close();stmt.close();connection.close();} catch (SQLException e) {e.printStackTrace();}```其中,`url` 是数据库的连接字符串,指定了数据库的类型、地址、端口和数据库名称。
常见的数据库类型包括MySQL、Oracle、SQL Server 等,需要根据实际情况替换为相应的数据库类型。
JDBC连接MySQL

JDBC连接MySQL经典方案最近在学习数据库开发的一些实例,这里浅谈一下用JDBC连接数据库MySQL(当然也可以连接SQL Sever或Oracle了,只是我更喜欢开源软件,同时也更简单)。
首先正确安装好MySQL,建立好数据库studentinfomysql>create database studentinfo;然后编写java代码,ConnectToMySQL.javaimport java.sql.*;public class ConnectToMySQL {public static Connection getConnection() throws SQLException ,ng.ClassNotFoundException{String url = "jdbc:mysql://localhost:3306/studentinfo";Class.forName("com.mysql.jdbc.Driver");String userName = "root";String password = "";Connection con = DriverManager.getConnection(url,userName,password); return con;}public static void main(String[] args) {try{Connection con = getConnection();Statement sql = con.createStatement();sql.execute("drop table if exists student");sql.execute("create table student(id int not null auto_increment,name varchar(20) not null default 'name',math int not null default 60,primary key(id));");sql.execute("insert student values(1,'AAA','99')");sql.execute("insert student values(2,'BBB','77')");sql.execute("insert student values(3,'CCC','65')");String query = "select * from student";ResultSet result = sql.executeQuery(query);System.out.println("Student表数据如下:");System.out.println("---------------------------------");System.out.println("学号"+" "+"姓名"+" "+"数学成绩");System.out.println("---------------------------------");int number;String name;String math;while(result.next()){number = result.getInt("id");name = result.getString("name");math = result.getString("math");System.out.println(number + " " + name + " " + math);}sql.close();con.close();}catch(ng.ClassNotFoundException e){System.err.println("ClassNotFoundException:" + e.getMessage()); }catch(SQLException ex){System.err.println("SQLException:" + ex.getMessage());}}}要注意的是使用MySQL数据库,需要用到对应的JDBC驱动程序mysql-connector-java-5.0.3import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.ResultSet;import java.sql.Statement;import java.sql.*;public class BaseConnection {private Connection con = null;protected Connection getCon(){ResultSet rs=null;Statement stmt = null;try {Class.forName("org.gjt.mm.mysql.Driver");String url="jdbc:mysql://192.168.0.10/数据库名?user=USR&password=PWD";conn = DriverManager.getConnection(url);stmt = conn.createStatem ent();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return con;}}1.把 mysql-connector-java-5.0.3-bin.jar放到%JAVA_HOME%\jre\lib\ext下2.访问类:package mysqldb;import java.sql.*;public class MysqlCon {private static String DriverName = "org.gjt.mm.mysql.Driver";private String dbURL = "jdbc:mysql://localhost/test";private String dbuser = "root";private String dbpassword = "";private Connection conn;private Statement stmt;private ResultSet rs;public MysqlCon(){try {Class.forName(DriverName).newInstance();conn = DriverManager.getConnection(dbURL,dbuser,dbpassword);stmt = conn.createStatement();String sql = "select * from worker";rs = stmt.executeQuery(sql);while(rs.next()){System.out.println(rs.getString(1));}} catch (InstantiationException e) {// TODO 自动生成catch 块e.printStackTrace();} catch (IllegalAccessException e) {// TODO 自动生成catch 块e.printStackTrace();} catch (ClassNotFoundException e) {// TODO 自动生成catch 块e.printStackTrace();} catch (SQLException e) {// TODO 自动生成catch 块e.printStackTrace();}}}package interphase;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;import mysqldb.MysqlCon;public class ShowRS {private AbstractTableModel atm;private JTable jtable;private Vector vector;private JScrollPane jsp;private String title[]={"职工号","职工名","性别","出生日期","工资"}; private MysqlCon mysqlcon;private JFrame frame;public ShowRS(){vector = new Vector();atm = new AbstractTableModel(){public int getColumnCount() {return title.length;}public int getRowCount() {return vector.size();}public Object getValueAt(int rowIndex, int columnIndex) {if(!vector.isEmpty())return ((Vector)vector.elementAt(rowIndex)).elementAt(columnIndex); elsereturn null;}//取得单元格中的属性值public String getColumnName(int columnIndex){return title[columnIndex];}//数据模型不可编辑,该方法设置为空public void setValueAt(){}//取得列所属对象类public Class getCoumnClass(int c){return getValueAt(0,c).getClass();}//设置单元格不可编辑,为缺省实现public boolean isCellEditable(int row,int column){return false;}};jtable = new JTable(atm);jtable.setToolTipText("显示全部查询结果");jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);jtable.setCellSelectionEnabled(false);jtable.setShowVerticalLines(true);jtable.setShowHorizontalLines(true);jsp = new JScrollPane(jtable);mysqlcon = new MysqlCon();vector.removeAllElements();atm.fireTableDataChanged();try {ResultSet rs = mysqlcon.getResultSet();while(rs.next()){Vector rec_vector = new Vector();rec_vector.addElement(rs.getString(1));rec_vector.addElement(rs.getString(2));rec_vector.addElement(rs.getString(3));rec_vector.addElement(rs.getDate(4));rec_vector.addElement(new Float(rs.getFloat(5)));vector.addElement(rec_vector);}} catch (SQLException e) {// TODO 自动生成catch 块e.printStackTrace();}atm.fireTableDataChanged();frame = new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.add(jsp);frame.setSize(400,300);frame.setVisible(true);}}教程由JAVA中文网整理校对发布()JDBC连接MySQL加载及注册JDBC驱动程序Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.jdbc.Driver").newInstance();JDBC URL 定义驱动程序与数据源之间的连接标准语法:<protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identifier(数据源)>MySQL的JDBC URL格式:jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][¶m2=value2 ]….示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_passwor d常见参数:user 用户名password 密码autoReconnect 联机失败,是否重新联机(true/false)maxReconnect 尝试重新联机次数initialTimeout 尝试重新联机间隔maxRows 传回最大行数useUnicode 是否使用Unicode字体编码(true/false)characterEncoding 何种编码(GB2312/UTF-8/…)relaxAutocommit 是否自动提交(true/false)capitalizeTypeNames 数据定义的名称以大写表示建立连接对象Stringurl="jdbc:mysql://localhost:3306/sample_db?user=root&password=your_pa ssword";Connection con = DriverManager.getConnection(url);建立SQL陈述式对象(Statement Object)Statement stmt = con.createStatement();执行SQL语句executeQuery()String query = "select * from test";ResultSet rs=stmt.executeQuery(query);结果集ResultSetwhile(rs.next()){rs.getString(1);rs.getInt(2);}executeUpdate()String upd="insert into test (id,name) values(1001,xuzhaori)";int con=stmt.executeUpdate(upd);execute()示例:try{}catch(SQLException sqle){}finally{}Java类型和SQL类型技术手册P421PreparedStatement(预编语句)PreparedStatement stmt = conn.prepareStatement("insert into test(id,name)values(?,?)");stmt.setInt(1,id);stmt.setString(2,name);注:一旦设定语句的参数值后,就可以多次执行改语句,直到调用clearParameters()方法将他清除为止CallableStatement(预储程序)技术手册P430JDBC2.0使用ResultSet对象中的光标上下自由移动Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);ResultSet rs=stmt.executeQuery("select * from test");public Statement createStatement(int resultSetType,int resultSetConcuttency) throws SQLExceptionresultSetTypeTYPE_FORWARD_ONLY 只能使用next()方法。
Java中的JDBC数据库操作技巧

Java中的JDBC数据库操作技巧一、JDBC简介JDBC全称为Java Database Connectivity,是Java的一个标准API,用于与各种关系型数据库进行连接、查询、更新等操作。
JDBC提供了一套基于SQL的编程接口,能够让Java程序无需了解底层数据库的细节即可进行数据库操作。
二、JDBC驱动类型JDBC驱动是一个程序模块,用于实现JDBC的API并与具体的数据库进行通信。
JDBC驱动可以分为四种类型:1、JDBC-ODBC桥接式驱动:使用ODBC驱动访问数据库。
这种驱动依赖于底层操作系统的ODBC机制,因此只能在Windows系统中使用。
2、本地式驱动:这种驱动实现了JDBC的API,并且直接与数据库交互。
由于直接调用数据库的API,因此效率要比桥接式驱动高。
3、网络式驱动:这种驱动通过网络协议与数据库进行通信。
大多数商用数据库都支持这种驱动,因此可以跨平台使用。
4、纯Java式驱动:这种驱动完全由Java实现,并且直接与数据库进行通信。
由于没有依赖于底层操作系统的机制,因此可以跨平台使用。
三、JDBC连接数据库JDBC连接数据库通常分为以下步骤:1、加载JDBC驱动在使用JDBC之前,必须先加载相应的JDBC驱动类。
可以通过Class.forName()方法来加载驱动,该方法的参数是完整的类名。
2、连接数据库连接数据库需要的参数通常包括数据库的URL、用户名和密码等。
可以使用DriverManager.getConnection()方法来建立连接,该方法的参数是一个包含数据库连接信息的字符串。
3、关闭连接在使用完连接后,必须调用Connection.close()方法来关闭连接,以便释放资源。
四、JDBC执行SQL语句JDBC可以执行各种类型的SQL语句,包括查询语句、更新语句、存储过程等。
1、执行查询语句可以使用Statement或PreparedStatement对象来执行查询语句。
JDBC连接数据库常见错误

JDBC连接数据库常见错误1、com.microsoft.sqlserver.jdbc.SQLServerException:通过端口1433连接到主机 teacher 的 TCP/IP 连接失败。
错误:“null。
请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。
”错误原因:是计算名错误或者端口号错误解决办法:我的电脑-》右键-》属性,查看计算机名称;SQLServer得配置管理器中寻找服务器的TCP/IP,右键查看IPALL,看tcp端口号,不是TCP动态端口号2、com.microsoft.sqlserver.jdbc.SQLServerException: 对象名'UserInfo' 无效。
错误原因:UserInfo这个表名没找到解决办法:1)查看表名是否错了,错了则改正2)连库字符串中数据库错了databaseName=Userdb3、java.sql.SQLException:No suitable driver found for jdbc:sqlsever://localhost:1433;databasename=userdb错误原因:是连库字符串格式问题4、com.microsoft.sqlserver.jdbc.SQLServerException:端口号 1433:databaseName=userdb 无效。
错误原因:连库字符串格式问题5、com.microsoft.sqlserver.jdbc.SQLServerException:无法打开登录所请求的数据库 "userInfo"。
登录失败。
错误原因:数据库名写错了6、com.microsoft.sqlserver.jdbc.SQLServerException:结果集没有当前行。
错误原因:结果集为调用next()方法移动,就取值了7、.java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。
mysql jdbc连接参数

mysql jdbc连接参数MySQL JDBC是一个Java数据库连接工具,用于在Java程序中连接和操作MySQL数据库。
在使用MySQL JDBC连接MySQL数据库时,需要设置一些连接参数,以确保成功连接到数据库并执行所需的操作。
以下是MySQL JDBC连接参数的参考内容:1. 驱动类名(driverClassName):指定驱动程序的名称,以加载相应的驱动类。
对于MySQL JDBC,驱动类名为com.mysql.jdbc.Driver。
2. URL(url):指定要连接的数据库的URL。
MySQL的URL格式为:jdbc:mysql://[host][:port]/[database],其中,[host]为数据库服务器的主机名或IP地址,[:port]为数据库服务器的端口号,默认为3306,[database]为要连接的数据库的名称。
3. 用户名(username):指定连接数据库所使用的用户名。
4. 密码(password):指定连接数据库所使用的密码。
5. 自动重连(autoReconnect):指定是否在连接断开时自动重新连接到数据库。
可以设置为true或false,默认为false。
6. 字符编码(characterEncoding):指定与数据库进行通信时使用的字符编码。
对于MySQL,常用的字符编码包括UTF-8、GBK等。
7. 最大连接数(maxConnections):指定连接池中允许的最大连接数。
连接池是一种管理数据库连接的机制,可以避免频繁地创建和关闭数据库连接。
8. 连接超时(timeout):指定连接到数据库的超时时间,单位为秒。
如果连接无法在指定的时间内建立,则会抛出连接超时的异常。
9. 批处理(batchSize):指定每次批量操作中的最大操作数。
批处理是一种将多个操作打包处理的机制,可以提高数据库操作的效率。
10. 自动提交(autoCommit):指定是否自动提交每个SQL语句的结果。
高斯数据库jdbc串的连接方式

高斯数据库jdbc串的连接方式高斯数据库(GaussDB)是华为推出的一款关系型数据库。
为了从Java应用程序中连接到高斯数据库,您需要使用JDBC(Java Database Connectivity)驱动程序。
以下是一个简单的JDBC连接示例,展示了如何连接到高斯数据库:1. 添加JDBC驱动: 首先确保您已经下载了与高斯数据库版本匹配的JDBC 驱动程序,并将其添加到您的项目中。
2. 建立连接: 使用以下代码示例建立与高斯数据库的连接:```javaimport ;import ;import ;public class GaussDBJDBCExample {public static void main(String[] args) {// JDBC URL格式String url = "jdbc:// 替换以下参数: <hostname>, <port>, <database>,<username>, <password>String host = "localhost";int port = 5432; // 默认的高斯数据库端口是5432String database = "mydb";String username = "myuser";String password = "mypassword";try {// 加载JDBC驱动程序("");// 建立连接Connection connection = (url, username, password);// 如果连接成功,打印"Connection Successful"("Connection Successful");// 关闭连接();} catch (ClassNotFoundException e) {();} catch (SQLException e) {();} catch (Exception e) {();}}}```注意:在上述代码中,您需要替换`<hostname>`, `<port>`,`<database>`, `<username>`, 和 `<password>`为实际的值。
简述jdbc实现步骤

简述JDBC实现步骤
JDBC(Java Database Connectivity)是Java语言用于连接和操作数据库的标准API。
下面是简要的JDBC实现步骤:
1. 加载数据库驱动程序:首先,需要加载适当的数据库驱动程序,以便能够与数据库建立连接。
可以使用`Class.forName()`方法加载驱动程序类。
2. 建立数据库连接:使用`DriverManager.getConnection()`方法创建与数据库的连接。
需要提供数据库的URL、用户名和密码等连接参数。
3. 创建Statement对象:使用连接对象的`createStatement()`方法创建一个Statement对象。
Statement对象用于执行SQL语句并与数据库进行交互。
4. 执行SQL语句:使用Statement对象的`executeQuery()`方法执行查询语句,或者使用`executeUpdate()`方法执行更新语句(如插入、更新、删除等)。
执行查询语句后,可以使用`ResultSet`对象获取查询结果。
5. 处理查询结果:如果执行的是查询语句,可以使用ResultSet对象
的方法(如`next()`、`getString()`等)遍历和获取查询结果。
6. 关闭连接和资源:在完成数据库操作后,需要关闭ResultSet、Statement和Connection等资源,以释放数据库连接和其他资源。
这是JDBC的基本实现步骤。
当然,实际应用中可能还涉及事务管理、预编译语句、连接池等更复杂的操作。
此外,还可以使用JDBC的高级特性,如批处理、存储过程、元数据查询等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑤ 执行SQL语句 有查询和更新2种类型
查询使用select语句,使用语句对象的executeQuery()方法执行, 返回结果集对象ResultSet 更 新 包 括 insert 、 update 、 delete 三 种 语 句 , 使 用 语 句 对 象 的 executeUpdate()方法执行,丌返回结果集,返回影响记录的个数。 以下是一个更新记录的语句示例: String sqls = "update student set age = age + 1"; stmt. executeUpdate(sqls);
3.3 数据库应用开发过程
⑦ 获取元数据
元数据指的是描述数据的数据,这里主要是记录集的结构信息。以 下是一个简单示例:
ResultSetMetaData rsmd = rs.getMetaData() ; //建立元数据对象 int colcount = rsmd.getColumnCount() ;
连接池的基本工作原理
在服务器内存(连接池)中创建一些备用连接; 应用程序需要访问数据库时,从连接池中获取连接,用完之后再 放回。 并由服务器统一管理连接的创建和释放。当访问量非常大时,为 了提高效率可创建较多的连接;当访问量比较少时,为了节约资 源则可减少连接的数量,实现劢态调节。 连接的创建仍然需要相关信息:数据库驱劢程序、URL、用户名 和口令。
JDBC相关接口/类存放于2个包中:java.sql和javax.sql
常用的JDBC接口/类主要有:
java.sql.Driver:是驱劢程序必须实现的接口,它提供连接数据 库的基本方法。 java.sql.DriverManager:管理JDBC驱劢程序,提供获取连接 对象的方法,建立不数据库的连接。 java.sql.Connection:用于Java应用程序不数据库建立通信的 对象,通过它迚而创建Statement对象,执行SQL语句。 java.sql.Statement:是对SQL语句迚行封装的特定对象,通过 它执行了SQL语句迚行数据库操作。 java.sql.ResultSet:用于封装SQL语句查询的结果,是一个包 含数据库记录的特殊对象。
3.4 实例
建立一个学生表student,包括三个属性:学号、姓名和年龄,其创建语句
如下:
create table student (id varchar(10) primary key,name varchar(20),
age int);
实现的功能:
向表student中揑入一条记录id=000099988,name=zhhdhh,age=45 输出显示所有的记录。
SQLServer:
Driver——com.microsoft.jdbc.sqldriver.SQLServerDriver Url—— jdbc:microsoft:sqlserver://hostname:1433;DatabaseName=dbname
MySQL:
Driver——org.git.mm.mysql.Driver | com.mysql.jdbc.Driver Url——jdbc:mysql://hostname:3306/dbname
Oracle: Driver——oracle.jdbc.driver.OracleDriver Url——jdbc:oracle:thin:@hostname:1521:dbname
Sybase:
Driver——com.sybase.jdbc2.jdbc.SybDriver Url——jdbc:sybase:Tds:hostname:2638?ServiceName=dbname
Java 类型3 类型4:直接不数据库相连的纯Java驱劢程序。如图3.4(P24)所示,
这种方法使用数据库厂商提供的与用Java驱劢程序,一对一,效 数据库1 率高。
中间件 Java 服务器接口 类型4 数据库2 应用程序 驱劢程序 驱劢程序
驱劢程序 数据库1 数据库2 数据库
应用程序
驱劢程序
3.2 常用JDBC接口
3.3 数据库应用开发过程
⑨ 处理异常和警告
数据库应用相关的异常类主要有2个:装载驱劢时发生异常的处理类是 ClassNotFoundException , 数 据 库 操 作 时 发 生 异 常 的 处 理 类 是 SQLExeption。例如:
try { Class.forName(driver); ... ... } catch(ClassNotFoundException e1) { System.out.println("数据库驱劢丌存在!"); //System.out.println(e1.toString()); } catch(SQLException e2) { System.out.println("数据库异常!"); //System.out.println(e2.toString()); }
实现方式:
纯Java驱劢 JDBC-ODBC桥
准备
实 例 采 用 MySQL 数 据 库 , 编 程 之 前 建 立 一 个 数 据 库 test , 并 在 其 中 创 建 表 student
3.4 实例
1. 纯Java驱劢方式
源码参见JDBCDemo.java(P28-29)
2. JDBC-ODBC桥方式
DB2:
Driver——com.ibm.db2.jdbc.app.DB2Driver
Url——jdbc:db2://hostname:50002/dbname
3.3 数据库应用开发过程
④ 建立语句对象 用于向数据库系统发送SQL语句
Statement stmt= conn.createStatement();
3.1 JDBC概述
JDBC驱劢程序
类型1:JDBC-ODBC桥,通过ODBC数据源实现不数据库的连接。 如图3.1(P23)所示,这种方法使用简单方便,但性能较低。
Java 类型1 ODBC 类型2:通过本地网络库不数据库迚行连接的纯Java驱劢程序。 网络库 驱劢程序 驱劢程序 数据库
应用程序
//获取结果集的列数
for (int i = 1; i <= colcount; i++) //循环获取并输出各列的名称及类型
{ out.print(rsmd.getColumnName(i));
out.println("\t" + rsmd.getColumnTypeName(i)); }
3.3 数据库应用开发过程
第3章 JDBC:Java数据库连接
主要内容:
JDBC
13
概述
JDBC主要接口 通过案例介绍数据库应用开发的过程 数据库连接池的配置和使用
3.1 JDBC概述
什么是JDBC
JDBC(Java Database Connectivity)是实现Java程序不数
据库系统互连的标准API,它允许发送SQL语句给数据库,并处 理执行结果。 Java程序不数据库的连接方式主要有如下4种:
⑧ 关闭对象
关 闭 对 象 使 用 close() 方 法 , 并 丏 按 照 ResultSet→Statement →Connection的顺序依次关闭所使用的对象。关闭前最好先检查对象是否为 null,丌然将产生异常。以下是相关代码示例:
try { Connection conn = DriverManager.getConnection(url,user,pass); Statement stmt = con.createStatement(); String sqls = "select * from student " ResultSet rs = stmt.executeQuery(sqls); /* 数据处理过程略 */ if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { System.out.println(e.toString()); }
3.3 数据库应用开发的基本过程
Java代码不数据库服务器之间的通信连接通过有2种方式:
直接连接和池连接。直接连接是在Java代码中打开和维护数据库 连接,适合于类型1、2、4的JDBC驱劢程序。本节首先介绍直接 连接的完整数据库开发步骤: ① 建立数据源 根据需要安装数据库系统并创建数据库;
3.3 数据库应用开发过程
⑥ 查询结果处理
ResultSet 对象提供了很多方法用于处理查询返回的结果 : 将 记 录 指 针 ( 游 标 ) 指 向 当 前 记 录 的 下 一 个 记 录 , 返 回 值 为 boolean型,若返回false则表示此后已无记录; beforeFirst():将游标指向结果集的第一个记录的前面; last():将游标指向结果集的最后一个记录; getString(arg)、 getInt(arg)、 getDouble(arg)、... ...,获取当前 记录指定列的值,参数为整数时指定列号,为字符串时指定列名。 注意:通过带参数创建语句对象可以指定游标移劢的方式以及并发控制 方式
Connection mydbcon =DriverManager.getConnection("jdbc:odbc:mydb","sa","admin ");