当前位置:首页 >> 图片/文字技巧 >>

Java


JDBC 是 Java 操作数据库的技术规范。他实际上定义了一组标准的操作数据库的接口。为了 能让 Java 操作数据库,必须要有实现了 JDBC 这些接口的类,不同的数据库厂商为了让 Java 语言能操作自己的数据库,都提供了对 JDBC 接口的实现--这些实现了 JDBC 接口的类打成一 个 jar 包,就是我们平时看到的数据库驱动。由于不同的数据库操作数据的机制不一样,因 此 JDBC 的具体实现也就千差万别,但是你作为 java 程序员,你只和 Java JDBC 的接口打交 到,才不用理会他们怎么实现的!呵呵,现在知道 JDBC 驱动是怎么回事了。当然,这些类可 以自己去写--如果你很牛! 二、JDBC 编程的步骤 为了说明这个步骤, 假设你要通过 java 程序执行一个 sql 查询, 你需要按照如下的步骤去走: 1、创建指定数据库的 URL 这个 URL 实际上还是统一资源定位器,里面包含了一些连接数据库的信息:数据库类型、端 口、驱动类型、连接方式、数据库服务器的 ip(或名字)、数据库名(有的是别名)等。其格 式如下: jdbc:subProtocol:subName://DBserverIP:port/DatabaseName 例如 mysql 的一个 url:jdbc:mysql://192.168.3.143:3306/zfvims 2、加载驱动类到 JVM 内存区域中 有两种方法: 一种是用 Class.forName()方法加载指定的驱动程序。 一种是将驱动程序添加到 java.lang.System 的属性 jdbc.drivers 中。 最后说明一点, 有时候添加到系统的 CLASSPATH 环境变量是不行的, 原因是在使用 JDBC 接口 操作数据库前,JVM 还没有加载上驱动。 Class.forName("com.mysql.jdbc.Driver") 3、、通过 DriverManager 类管理驱动、创建数据库连接。 DriverManager 类作用于程序员和 JDBC 驱动程序之间, 提供注册管理驱动建立连接细节等方 法,它所有成员均为静态的。通过其 getConnection 方法会创建一个 JDBC Connection 对象。 Connection conn=DriverManager.registerDriver("jdbc:mysql://192.168.3.143:3306/zfvims","lava soft","password"); 4、Connection 类--数据库连接 这里所说的 Connection 类实际上是实现了 JDBC 的 Connection 接口的类,这个类一般都是

jdbc 驱动程序实现了。 Connection 类表示了数据库连接, 通过其对象可以获取一个获取数据 库和表等数据库对象的详细信息。但更多的是通过这个连接更进一步去向数据库发送 SQL 语 句去执行,下面会讲到。 数据库的连接的建立是很耗费资源和时间的,因此在不用连接的情况下要通过其 close()方 法将连接关闭,以释放系统资源。 5、Statement 类--发送并执行(静态)SQL 语句 通过 Connection 对象的 createStatement()方法可以创建一个 Statement 对象, 通过该对象 的方法可以(发送)并执行一个静态 sql 语句。如果要执行动态的 sql(sql 串中有参数), 那么就用 PreparedStatement 类,用法和 Statement 类似。 Statement stmt=con.createStatement() 6、ResultSet 类--结果集 当你执行一条 sql 查询后,就会产生一个查询结果。ResultSet 就表示数据库结果集的数据 表,通常通过执行查询数据库的语句生成。ResultSet 对象具有指向其当前数据行的指针。 通过 ResultSet 对象不但可以结果集数据,还可以获取结果集表的列名、数据类型等信息。 ResultSet rs=stmt.executeQuery(sql) 7、关闭数据库连接 当对 sql 操作完成后,应该关闭数据库连接,这样避免因为连接未关闭而耗费系统资源,如 果每次都不关闭,多次操作将建立多个连接,最终数据库连接会达到最大限度,或者耗尽系 统的资源,从而导致应用崩溃。因此要注意关闭资源,尤其是数据库连接。 三、JDBC 编程最基本的实例 下面通过一个执行一条简单的 MySQL 查询来说名上面的 JDBC 编程的一般方法和步骤。 public class TestJDBC(){ 1. public static Connection getConnectionByJDBC() { null; 2. try { //装载驱动类 3. Class.forName("com.mysql.jdbc.Driver"); (ClassNotFoundException e) { 4. 常!"); System.out.println("装载驱动异 e.printStackTrace(); } catch Connection conn =

5. try { 6.

}

//建立 JDBC 连接 conn = DriverManager.getConnection(""jdbc:mysql://192.168.3.143:3306/zfvims ","lavasoft","password"); 7. } catch (SQLException e) { 链接数据库异常!"); 8. e.printStackTrace(); 9. return conn; 10. } } System.out.println("

public static String test() { 11. String sqlx = "select t.code,t.name from province t order by t.code asc"; try { 12. //创建一个 JDBC 声明 Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); 13. //执行查询 ResultSet = stmt.executeQuery(sqlx); 14. while (rs.next()) { rs.getString("code"); 15. rs.getString("name"); ; 16. 17. } } catch (SQLException e) { e.print String name = System.out.println(code+name) String code =

System.out.println(e.getMessage()); StackTrace();

18.

} finally {

//预防性关闭连接(避免异常发生时在 try 语句块关闭连接没有执行) 19. try { if (conn != null) conn.close(); 20. { 21. 22. } catch (SQLException e) System.out.println(e.getMessage()); e.printStackTrace(); } 23. public static void main(String args[]) { new TestJDBC().test(); 24. } 25. } 四、JDBC 编程的陷阱 1、conn 一定要在 finally 语句块进行关闭。 2、Statement、ResultSet 尽可能缩小其变量作用域。 3、 Statement 可以使用多次, 定义多个。 一个 Statement 对象只和一个 ResultSet 对象关联, 并且是最后一次查询。 4、ResultSet 在 Connection、ResultSet 关闭后自动关闭。 } }


相关文章:
大学java期末试卷2份(含答案)
五、编程题 (本大题 3 小题,每小题 10 分,共 30 分) 1、import java.io.*; public class SelectSort { public static void main(String args[]) { ...
java
(fWrite,true); 实验一 AnalysisResult.java import java.io.*; import java.util.*; public class AnalysisResult { public static void main(String args[])...
浙大Java语言程序设计编程答案10
浙大Java语言程序设计编程答案10_其它_高等教育_教育专区。这是浙江大学2011-2012学年最新的java语言程序设计课程的全套答案。欢迎各位好学的童鞋前来下载。完全免费。...
java2实用教程第4版_习题解答
import java.util.*; public class E { public static void main (String args[ ]) { double a=0,b=0,c=0; a=12; b=24; c=Math.asin(0.56); ...
java复习资料(内容版)
JAVA 编程技术复习纲要( JAVA 语言程序设计郑莉王行言马素霞) 第 1章 JAVA 语言基础知识 1.1 JAVA 语言与面向对象的程序设计 1 简述面向对象的编程语言与以往编程...
java中53个关键字(含2个保留字)的意义及使用方法
java 中 53 个关键字(含 2 个保留字)的意义及使用方法 分类: JAVA 2012-04-25 10:43 1.访问修饰符的关键字(共 3 个) 关键字 public protected private ...
java基础知识大全(必看经典)
java基础知识大全(必看经典)_工学_高等教育_教育专区。java初学者必看,归纳各种基础知识 第一讲 Java 语言入门 1.1 Java 的特点 1.1.1 面向对象: ? 与 C++...
java中常用英语
java中常用英语_英语学习_外语学习_教育专区。Java 与英语干程序员这行实在是离不开英语, 干程序员是一项很辛苦的工作, 要成为一个高水平的程序 员尤为艰难。 ...
Eclipse如何导入一个已有的javaproject
Eclipse如何导入一个已有的javaproject_计算机软件及应用_IT/计算机_专业资料。Eclipse应用技术 Eclipse 导入一个已有的 JavaProject 教程 ---make by 小 6 貌似好多...
Java语言基础
Java语言基础_IT/计算机_专业资料。java语言基础 1.1 Java 标识符有什么规定和特点? 在源程序设计中,绝大多数语言都采用标识符,在 Java 程序设计中,也允许 ...
更多相关标签: