• JDBC——架构层、驱动


    JDBC(java Datebase Connector)

    jdbc驱动程序

    四种类型:

      jdbc-odbc桥接驱动程序

      Native-API

      JDBC-Net

      Native-Protocol  (常见)

     1 public class DBToolOld
     2 {
     3     public static void main(String[] args)
     4     {
     5         // 1、注册驱动
     6         // DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
     7         // new驱动类的时候会注册一份,DriverManager.registerDriver又会去注册一份驱动
     8         // 硬编码在类中,不方便修改
     9         // System.setProperty("driver", "oracle.jdbc.driver.OracleDriver");
    10         // 因为key和value都是字符串,可以改到配置文件中
    11         // 需要约定好key的值,注册起来不太方便
    12         try
    13         {
    14             Class.forName("oracle.jdbc.driver.OracleDriver");
    15             // 2、获得连接对象
    16             String oracleUrl = "jdbc:oracle:thin:@192.168.6.100:1521:NIIT";
    17             Connection conn = DriverManager.getConnection(oracleUrl, "scott",
    18                     "tiger");
    19             // 3、开始执行SQL语句,先创建Statement对象
    20             Statement stmt = conn.createStatement();
    21             // 4、执行SQL语句,返回一个结果集,只有是SELECT语句、executeQuery才会返回结果集
    22             ResultSet rs = stmt
    23                     .executeQuery("SELECT empNo, ename, hireDate, sal FROM Emp");
    24             // 5、处理结果集
    25             while (rs.next())
    26             {
    27                 int empNo = rs.getInt(1); //根据列下标获得值
    28                 System.out.println(empNo);
    29                 String ename = rs.getString("ename"); //根据列名获得值,推荐这种方式
    30                 System.out.println(ename);
    31                 Date joinDate = rs.getDate("hireDate");
    32                 System.out.println(joinDate);
    33                 Double sal = rs.getDouble("sal");
    34                 System.out.println(sal);
    35                 System.out.println("============");
    36             }
    37             //6、关闭资源
    38             rs.close();
    39             stmt.close();
    40             conn.close();
    41         }
    42         catch (ClassNotFoundException e)
    43         {
    44             // TODO Auto-generated catch block
    45             e.printStackTrace();
    46         }
    47         catch (SQLException e)
    48         {
    49             // TODO Auto-generated catch block
    50             e.printStackTrace();
    51         }
    52 
    53     }
    54 }

    实际上常用的是:

     1 public class DBTool
     2 {
     3     private static DBTool instance;
     4 
     5     private DBTool()
     6     {
     7 
     8     }
     9 
    10     public static DBTool getInstance()
    11     {
    12         if (instance == null)
    13         {
    14             instance = new DBTool(); // 如果该实例为空,表示没实例化,在自己这里实例化,否则直接返回已经实例化好的对象
    15         }
    16         return instance;
    17     }
    18 
    19     public Connection getConnection()
    20     {
    21         Connection conn = null;
    22         try
    23         {
    24             Properties p = new Properties();
    25             p.load(new FileReader("db.properties"));
    26             String driverName = p.getProperty("driverName");
    27             String url = p.getProperty("url");
    28             String userName = p.getProperty("username");
    29             String pwd = p.getProperty("password");
    30             Class.forName(driverName);
    31             conn = DriverManager.getConnection(url, userName, pwd);
    32         }
    33         catch (IOException | SQLException | ClassNotFoundException e)
    34         {
    35             // TODO Auto-generated catch block
    36             e.printStackTrace();
    37         }
    38         return conn;
    39     }
    40 
    41     public static void closeAll(Connection conn, Statement stmt, ResultSet rs)
    42     {
    43         close(rs);
    44         close(stmt);
    45         close(conn);
    46     }
    47 
    48     private static void close(AutoCloseable ac)
    49     {
    50         try
    51         {
    52             if (ac != null)
    53             {
    54                 ac.close();
    55                 ac = null;
    56             }
    57         }
    58         catch (Exception e)
    59         {
    60             // TODO Auto-generated catch block
    61             e.printStackTrace();
    62         }
    63     }
    64 }

    此时驱动配置文件使用映射:

    1 driverName = com.mysql.jdbc.Driver
    2 url = jdbc:mysql://192.168.6.66:3307/hn
    3 username = zxj
    4 password = wxniit
  • 相关阅读:
    堆排序
    cocos2d-x -------之笔记篇 动画的实现
    cocos2d-x -------之笔记篇 3D动作说明
    Cocos2d-x 学习之路------(CCCallfunc 系列)
    cocos2d-x -------之笔记篇 环境的安装
    poj 1141 Brackets Sequence(区间DP)
    1051 接龙游戏
    1229 数字游戏
    java反射机制(笔记)
    Linux中搭建FTP服务器
  • 原文地址:https://www.cnblogs.com/god-S/p/4717100.html
Copyright © 2020-2023  润新知