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

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自学教程(史上最全)_图文.ppt
JAVA自学教程(史上最全) - JAVA自学教程适合没有基础的同学... JAVA自学教程(史上最全)_计算机软件及应用_IT/计算机_专业资料。JAVA自学教程适合没有基础的同学 ...
Java Web简答题.doc
Java Web简答题 - 编程题: 数据库:不限 提交 sql 语句 mvc 设计模式 1.工具栏:Jdbcutil.java 2.实体类:M(数据和业务的封装)(显示列表 findAll、修...
java基础测试题.doc
java基础测试题 - java基础测试题、笔试题、java程序员面试... java基础测试题_计算机软件及应用_IT/计算机_专业资料。java基础测试题、笔试题、java程序员面试 ...
java教学大纲.doc
java教学大纲 - 程序设计》 《Jav 程序设计》教学大纲 一、课程性质与教学目的 课程性质: 课程性质 《Java 程序设计》是计算机软件技术专业的一门职业技术课程,本...
Java笔试题库及其答案.doc
Java笔试题库及其答案 - 一.单选题 1) 在 JAVA 中,要判断 D 盘
1 Java语言概述答案.doc
1 Java语言概述答案 - 第 1 章 Java 语言概述 一、判断题 1.Java 语言是一种解释执行的语言,这个特点是 Java 语言的一个缺点。(F) 2.Java 源程序的文件...
java基础试卷.doc
java基础试卷 - JAVA 试卷 班级 姓名 一、选择题 (25*2=50 分) 1.下面用来运行 Java 应用程序的命令是( D ) A 、javac B、jdk C、 appletvi...
Java大学真题基础练习.doc
Java大学真题基础练习 - 1、下列表达式中,类型可以作为 int 型的是(
java学习笔记课后选择答案整理.doc
标签: 学习笔记| java| java学习笔记课后选择答案整理_理学_高等教育_教育专区。java学习笔记8 课后选择题答案 第一章 1 哪个组织负责监督审察 Java 相关技术...
Java语言基础_图文.ppt
Java语言基础 - Java语言基础(第一讲) ? ? ? ? ? ? Java语言简介 面向对象的概念 java面向对象程序设计的特点 类,包,接口 JAVA的开发环境 Eclipse简介和...
JAVA试题及答案(50道选择题).doc
JAVA试题及答案(50道选择题) - 选择题 1、 JAVA 所定义的版本中不包括: (D A、 JAVA2 EE B、 JAVA2 Card C、 JAVA2 ME D、 JAVA2 HE ...
java.doc
java - 10.14.1 实验 1 分析成绩单 1.实验目的 本实验的目的是
JAVA试题及答案(50道选择题).doc
JAVA试题及答案(50道选择题) - JAVA 语言基础内部测试题 选择题(针
JAVA经典算法50题.txt
JAVA经典算法50题 - /*** * ...
Java语言基础.doc
Java语言基础 - 1.1 Java 标识符有什么规定和特点? 在源程序设计中,绝大多数语言都采用标识符,在 Java 程序设计中,也允许 程序员采用标识符来对变量、方法和...
java专业术语.doc
java专业术语 - 1.API:Java ApplicationProgram
java.doc
java - 试卷编号:172 所属语言:Java 试卷方案:Java 毕业重修
Java基础知识整理.doc
Java基础知识整理 - Java 知识点总结 1 环境搭建与开发 1.1 环境变量 JAVA_HOME:Java 的安装目录; CLASSPATH:指定一个路径列表,用于搜索 Java 在...
Java名词缩写.doc
Java名词缩写 - 《Java 专业术语标准化规范》 -AAPI,Applic
更多相关标签: