A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lily 黑马帝   /  2011-10-9 13:35  /  4147 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在JAVA程序中,连接数据库采用JDBC技术。JDBC是由与平台无关的数据库连接标准,他将数据库访问封装在少数几个方法内,使用户可以极其方便地查询数据库、插入新的数据、更改数据。
那么,JDBC有什么功能和特点。它具体是如何工作的?

评分

参与人数 1技术分 +2 收起 理由
admin + 2 看看大家的回答!

查看全部评分

6 个回复

正序浏览
林国锋 发表于 2011-10-9 13:50
JDBC是MYSQL公司用JAVA语言对MYSQL数据库操作的封装
下面是一段JDBC连接数据的数据库工厂,连接以后就可以 ...

支持一下
回复 使用道具 举报
Lop_adoule 发表于 2013-8-20 18:52
技术分怎么拿啊? 求指导。

去技术论坛上发表技术文章
回复 使用道具 举报
欧阳超 发表于 2011-10-9 13:41
创建指定数据库的URL这个URL实际上还是统一资源定位器,里面包含了一些连接数据库的信息:数据库类型、端口 ...

看看别人
回复 使用道具 举报
技术分怎么拿啊? 求指导。
回复 使用道具 举报 1 0
创建指定数据库的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","lavasoft","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操作完成后,应该关闭数据库连接,这样避免因为连接未关闭而耗费系统资源,如果每次都不关闭,多次操作将建立多个连接,最终数据库连接会达到最大限度,或者耗尽系统的资源,从而导致应用崩溃。因此要注意关闭资源,尤其是数据库连接。

评分

参与人数 1技术分 +2 黑马币 +3 收起 理由
admin + 2 + 3 赞一个!

查看全部评分

回复 使用道具 举报 1 0
JDBC是MYSQL公司用JAVA语言对MYSQL数据库操作的封装
下面是一段JDBC连接数据的数据库工厂,连接以后就可以进行CRUD的操作了
  1. package com.linguofeng.factory;

  2. import java.sql.Connection;
  3. import java.sql.SQLException;
  4. import org.apache.commons.dbcp.BasicDataSource;

  5. public class ConnectionFactory {
  6.         private static BasicDataSource bds = new BasicDataSource();
  7.         static {
  8.                 bds.setDriverClassName("com.mysql.jdbc.Driver");
  9.                 bds.setUrl("jdbc:mysql://127.0.0.1/mysql");
  10.                 bds.setUsername("root");
  11.                 bds.setPassword("root");
  12.                 bds.setMaxActive(2000);
  13.                 bds.setMaxIdle(20);
  14.                 bds.setMaxWait(5000);
  15.         }

  16.         public ConnectionFactory() {
  17.         }

  18.         public static java.sql.Connection getConnection() {
  19.                 java.sql.Connection con = null;
  20.                 try {
  21.                         con = bds.getConnection();
  22.                 } catch (SQLException e) {
  23.                         e.printStackTrace();
  24.                 }
  25.                 return con;
  26.         }

  27.         public static void close(java.sql.Connection con, java.sql.Statement stm,
  28.                         java.sql.ResultSet rs) {
  29.                 try {
  30.                         if (rs != null) {
  31.                                 rs.close();
  32.                                 rs = null;
  33.                         }
  34.                         if (stm != null) {
  35.                                 stm.close();
  36.                                 stm = null;
  37.                         }
  38.                         if (con != null) {
  39.                                 con.close();
  40.                                 con = null;
  41.                         }

  42.                 } catch (Exception e) {
  43.                         e.printStackTrace();
  44.                 }
  45.         }

  46.         public static void main(String[] args) {
  47.                 //  使用方法
  48.                 Connection con = ConnectionFactory.getConnection();
  49.                 System.out.println(con);
  50.         }
  51. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马