JDBC概述

 概述:

  1. JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API
  2. 使用JDBC必须知道的几个接口和类: 
    1.DriverManager:管理jdbc驱动的服务类(官网api解释) 
    2.Connection:代表每一次数据库连接 
    3.Statement:执行sql语句的工具接口 
    4.PreparedStatement:一个预编译的SQL Statement 
    5.ResultSet:结果集,通过sql查询后产生的结果集
  3. 其他相关内容: 
    ResultSetMetaData、DatabaseMetaData、RowSet、RowSetFactory 
    事务、分页、存储二进制文件、执行存储过程、连接池(c3p0)等等

 

使用前准备: 待续...

程序演示: 放大

  1. package com.cxy.jdbc;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.ResultSet;  
  6. import java.sql.SQLException;  
  7. import java.sql.Statement;  
  8.   
  9. /** 
  10.  * @author cxy @ www.cxyapi.com 
  11.  */  
  12. public class JdbcTest  
  13. {  
  14.     private static Connection con=null;  
  15.     private static Statement stmt=null;  
  16.     private static ResultSet rs=null;  
  17.       
  18.     public static void main(String[] args) throws Exception  
  19.     {  
  20.         try  
  21.         {  
  22.             /* jdbc编程可分为5步 
  23.              * 第一步:加载驱动 将指定类加载到jvm中 
  24.              * 第二步:创建数据库连接(Connection) 
  25.              * 第三步:创建一个Statement 
  26.              * 第四步:创建一个结果集(ResultSet) 
  27.              * 第五步:关闭ResultSet、Statement、Connection 
  28.              *  
  29.              * 说明: 
  30.              * 1.良好的编程习惯应该将第五步的关闭操作放到 finally去执行 
  31.              * 2.java7后的新接口可以提供 自动关闭功能 见下文 
  32.              * 3.真实项目中 数据库相关连接信息都应写到配置文件中(xml或者Properties文件中) 
  33.              * 4.使用本例前请先建立对应的数据库:dbtest,然后运行建表语句( 或修改成任意自己的库和表) 
  34.              */  
  35.             Class.forName("com.mysql.jdbc.Driver");   
  36.             con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest""root""root");  //三个参数分别是数据库连接、帐号、密码  
  37.             stmt=con.createStatement();  
  38.             //stmt.execute("CREATE TABLE t_student ( id_ varchar(32) not null,name_  varchar(32),sex  varchar(32))");  
  39.             //stmt.execute("insert into t_student values ('1','小明','男')");  
  40.             //stmt.execute("insert into t_student values ('2','小白','女')");  
  41.             //stmt.execute("delete from t_student");  
  42.             stmt.executeQuery("select * from t_student");  
  43.             rs=stmt.getResultSet();  
  44.             System.out.println("id\t姓名\t 性别");  
  45.             while(rs.next())  
  46.             {  
  47.                 System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));  
  48.             }  
  49.             System.out.println("操作成功");  
  50.         }catch (Exception e)   
  51.         {  
  52.             System.out.println("数据库操作出现异常");  
  53.         }finally  
  54.         {  
  55.             if(rs!=null)  
  56.             {  
  57.                 //5.关闭结果集  
  58.                 rs.close();  
  59.             }  
  60.             if(stmt!=null)  
  61.             {  
  62.                 //6.关闭状态集  
  63.                 stmt.close();  
  64.             }  
  65.             if(con!=null)  
  66.             {  
  67.                 //7.关闭数据库连接  
  68.                 con.close();  
  69.             }  
  70.             System.out.println("数据库各种资源已经关闭");  
  71.         }  
  72.         System.out.println("=====================================");  
  73.           
  74.         /* Ok 我们已经看到了 其实我们只想操作一下数据库而已!难道那些烦人的关闭操作 java就不能自动执行? 
  75.          * java7开始这个梦想成真了!java7开始出现了一个AutoCloseable接口,并且大部分的需要关闭资源的类都实现了这个接口 
  76.          * 下面我们就来写一个和上面类似的程序看看吧 
  77.          * 注意:这个只能在安装了java7之后的版本才能使用 
  78.          */  
  79.         try(  
  80.                 Connection con1=DriverManager.getConnection("jdbc:mysql://localhost/dbtest""root""root");  
  81.                 Statement stmt1=con1.createStatement();  
  82.                 ResultSet rs1=stmt1.executeQuery("select * from t_student");  
  83.             )  
  84.             {  
  85.                 System.out.println("id\t姓名\t 性别");  
  86.                 while(rs1.next())  
  87.                 {  
  88.                     System.out.println(rs1.getString(1)+"\t"+rs1.getString(2)+"\t"+rs1.getString(3));  
  89.                 }  
  90.             }catch(SQLException e)  
  91.             {  
  92.                 System.out.println("数据库操作出现异常");  
  93.             }  
  94.           
  95.         /* 
  96.          * ok 简单吗?神奇吗?这就是传说中的try-with-resource,不仅仅是jdbc可以这样用哦~ 
  97.          * 更多扩展阅读请看:http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html 
  98.          */  
  99.     }  
  100. }  

你可能感兴趣的:(JDBC概述)