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

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_SE_马士兵笔记word版
Java 编译器才会找到该类 也可以使用 import 在文件的开头引入要使用的类,例:import com.yao.MyClass 可以不需要用 import 语句直接使用 java.lang 包中的类 ...
JAVA的名词解释及复习
JAVA的名词解释及复习_信息与通信_工程科技_专业资料。JAVA程序的基本了解,仅控参考Java 语言与面向对象程序设计 Java 语言与面向对象程序设计 印 清华大学出版社 zm...
JAVA
3.实验代码服务器: import java.io.*; import java.net.*; public class EchoServer { private int port=9999; private DatagramSocket socket; public Echo...
java
(fWrite,true); 实验一 AnalysisResult.java import java.io.*; import java.util.*; public class AnalysisResult { public static void main(String args[])...
JAVA-简易教程
在页面的左侧或右侧,也可以放置在页面的顶端或 底端。可使用“文本框工具”选项卡更改提要栏文本框的格式。] 一章 绪论【学习目标】 1.了解 JAVA 的发展历史...
Java 基础语法到分支结构
Java 基础语法 一个 Java 程序可以认为是一系列对象的集合, 而这些对象通过调用彼此的方法来协同工作。 下面简要介绍下类、对象、方法和实例变量的概念。 ? 对象:...
java基础知识大全(必看经典)
java基础知识大全(必看经典)_工学_高等教育_教育专区。java初学者必看,归纳各种基础知识 第一讲 Java 语言入门 1.1 Java 的特点 1.1.1 面向对象: ? 与 C++...
java基础知识总结
...hello StringBuilder s11 = new StringBuilder("java"); StringBuilder s22 = new StringBuilder("hello"); method_2(s11,s22); System.out.println(s11+...
Java就业真的好吗?
开发套件的下载次数超过10万次;受到了全球所有主要计算机厂商 的支持, 而这一切都发生在其发表后的800天内;Java闯入企业计算的心脏正成为大众传媒舆 论的推动力量,...
选择Java还是C#
选择Java还是C#_计算机软件及应用_IT/计算机_专业资料。学.Net 还是学 Java? 因为.Net 和 Java 是国内市场占有率最高的两门技术, 对于准备学习编程语言的初学者...
更多相关标签: