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

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笔试题库及其答案
Java笔试题库及其答案 - 一.单选题 1) 在 JAVA 中,要判断 D 盘下是否存在文件 abc.txt,应该使用以下( 一项) a) if(new File(“d:abc.txt”) ...
java 试题
java 试题 - 一、填空题 1、Java 的三大体系分别是_JavaSE___、_JavaEE___、_JavaME___。 2、Java 程序的运行环境简称之为 JRE___...
Java
Java - 1. 2. 3. 4. 5. 6. 7. 在 JSP 中,对于 context.xml 中数据源的配置描述错误的是(D )。 A. name 属性用来指定 Reso...
JAVA
3.实验代码服务器: import java.io.*; import java.net.*; public class EchoServer { private int port=9999; private DatagramSocket socket; public Echo...
我们为什么选择Java_图文
我们为什么选择Java_计算机软件及应用_IT/计算机_专业资料。我们为什么选择 Java 1、简单易学 首先 Java 是一个面向对象的编程语言,容易理解。而且略去了多重加载、...
Java基础测试题
编译 Java 程序的命令是: A、appletviewer C、java B、javac D、javadoc B、void mmm(int i) D、int mm() (方法名不一样) ( B ) 5.编译 Java 源...
Java基础教程(0基础)【适合初学者阅读】
Java基础教程(0基础)【适合初学者阅读】_计算机软件及应用_IT/计算机_专业资料。适合0基础学习和阅读 第1 部分 Java 基础程序设计 ·Java 语言介绍 ·简单的 ...
Java填空题
Java填空题 - Java 填空题 1 一个 Java 源程序是由若干个 类 组成。 2 class 是 Java 的关键字,用来定义类。 3 Java 应用程序中有多个类时,java 命令后...
mooc课程 java 期末考试试卷
mooc课程 java 期末考试试卷 - 2.1 数据类型已完成 1 以下标识符中( )是不合法的。 ? ? ? ? A、_small B、Big C、$12ab D、7hello 我的答...
Java_基础题
Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简 要介绍下类、对象、方法和实例变量的概念。 ? 对象:...
更多相关标签: