【J2EE规范】数据库连接——JDBC

来源:互联网 发布:淘宝零食店推荐 编辑:程序博客网 时间:2024/06/05 08:02

        JDBC就像我们学过的ODBC一样是帮助我们的程序来连接数据库的。有了JDBC向各种关系数据库发送SQL语句就变成了一件很容易的事情。它为多种关系数据库提供了统一的访问接口,是我们能够更方便的让我们的程序去访问数据库。如果没有JDBC或者类似的API,当我们访问SQL server 的时候需要编写一个专门的程序,有了JDBC我们就可以从中解脱出来。

JDBC常用接口和类

         Driver:每种数据库的驱动程序,都提供一个实现该接口的类,简称Driver类,应用程序必须首先加载它,加载的目的就是创建自己的实例并向Drivermanager注册,以便驱动程序管理器对数据库驱动的管理。

         DriverManager:在编写程序时,当需要连接数据库的时候就需要装载由数据库厂商提供的数据库驱动程序。该接口作用在用户和驱动程序之间,主要作用就是管理用户程序与特定数据库的连接。跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。

         Connection对象:数据库连接,只有建立了连接,用户程序才能操作数据库

         Statement:此为一个接口,具体的实例创建由Connection接口提供的createStatement方法进行创建。

原理

       1.装载驱动程序,向DriverManager注册该驱动程序

          2.获得数据库连接,由DerverManager创建connection的实例

          3.执行sql语句,由connection创建statement,statement执行sql语句。

          4.关闭连接

      

一个简单的实例

   

/* * 1.导入必要的包 */import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JDBCdemo { public static Connection getConnection() throws ClassNotFoundException, SQLException {/* * 1.注册JDBC驱动程序 * 需要引入jar包:mysql-connector-java */        Class.forName("com.mysql.jdbc.Driver");//        /*         * 2.打开一个链接         */String url="jdbc:mysql://localhost:3306/shop";String username="root";String password="123";Connection conn=DriverManager.getConnection(url,username,password);return conn;}public static void main(String[] args){         try {Connection con=getConnection();    /*     * 3.1执行一个查询     */Statement stmt=con.createStatement();String query="select * from user";ResultSet result=stmt.executeQuery(query);while (result.next()) { int uid = result.getInt("uid"); String name = result.getString("username"); String phone = result.getString("phone"); System.out.println(" " + uid + " " + name + " " + phone); } /* * 3.2执行一个删除 * 添加和更新我们都可以用这个方法。 */String sql="delete from adminuser where username='admin'";boolean flag=stmt.execute(sql);System.out.println(flag);          /*           * 4.关闭数据源           */result.close();stmt.close();con.close();                  } catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}         }}
  

2 0
原创粉丝点击