JDBC连接数据库流程

JDBC驱动:

    第一种JDBC驱动:JDBC-ODBC桥,这种驱动是最早实现的驱动程序,将JDBC API映射到ODBC API。

    第二种JDBC驱动:直接将JDBC API映射成数据库特定客户端API,包含特定数据库的本地代码,用于访问特定数据库的客户端。    

    第三种JDBC驱动:支持三层结构的JDBC访问方式,主要用于applet阶段,通过applet访问数据库。

    第四种JDBC驱动:纯Java的,直接与数据库实例交互,这种驱动是智能的,它知道数据库使用的底层协议,目前最流行的JDBC驱动。

 

1、加载驱动程序

    Java中可以通过“Class.forName()”方式来加载驱动程序

    几种常用的数据库驱动程序:

        MySQL:com.mysql.jdbc.Driver

        Oracle:oracle.jdbc.driver.OracleDriver

        DB2:com.ibm.db2.jdbc.app.DB2Drver

        SQL Server:com.microsoft.jdbc.sqlserver.SQLServerDriver

        ODBC:sun.jdbc.odbc.JdbcOdbcDriver

    代码如下:

        Class.forName("com.mysql.jdbc.Driver")    ;

        其中com.mysql.jdbc.Driver就是JDBC API驱动管理指定的MySQL数据库的驱动程序.

2、通过DriverManager类创建数据库连接对象

    DriverManager类作用于程序和JDBC驱动程序之间,检查所加载驱动程序是否可以建立连接。

    然后调用getConnection方法创建JDBC Connction对象

    Connection conn = DriverManager.getConnection("连接数据库URL","用户名","密码")    ;

    其中 URL=协议名+IP地址(域名)+端口号+数据库名

    例子代码:

        Connection conn = DriverManager.geConnection("jdbc:mysql://localhost:3306/table","root","1")    ;

3、创建Statement类并执行

    Statement类的主要作用是用于执行静态SQL语句并返回生成的结果集。

    通过Connection的createStatement()方法可以创建Statement对象,通过Statement对象的executeQuery()和executeUpdate()方法进行静态SQL语句的执行。executeQuery()主要用于数据的查询,executeUpdate()主要用于数据的更新、插入和删除。

    例子代码:

        Statement stmt = conn.createStatement() ;

        ResultSet rs = stmt.executeQuery("select *from table ") ;    //返回查询得出的结果集

        int i = executeUpdate("insert into table (name,age) values ('张三','20')") ;    //返回受影响记录总数,没有更新返回-1

    PrepareStatement是Statement的子接口,它允许数据库预编译SQL语句,以后每次只改变SQL命令的参数,避免数据库每次都需要编译SQL语句,因此性能更好。

    ResultSet executeQuery()、int executeUpdate();无需接受SQL字符串,只需要接受参数, void setXxx(int paramIndex,Xxx value)。

4、查看返回的ResultSet结果集

    ResultSet表示执行查询数据库后返回的数据的集合,由执行Statement的executeQuery()方法得到。

    ResultSet有可以指向当前数据行的指针,通过next()是指针指向下一行,然后通过列号或者字段取出数据当next()返回null表示数据不存在。

    例子代码:

        ResultSet rs = stmt .executeQuery("select *from table") ;

        while(rs.next()){

            int id = rs.getInt(1) ;    //通过列号取出,从1开始

            String name = rs.getString("name") ;     //通过字段名取出

            int age = rs.getInt("age") ;

        }

5、关闭数据库连接

    使用完数据库,要通过Connection的close()方法及时关闭数据库。

    这些对象使用了规模较大的数据结构,我们不应该等等垃圾回收器来处理他们。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值