zoukankan      html  css  js  c++  java
  • JDBC第一天

    (一)JDBC访问数据库的工作过程:

                 

      <1>加载驱动,建立连接

         oracle数据库:在项目中导入ojdbc.jar包

         数据库驱动路径:String driver="oracle.jdbc.driver.OracleDriver";

         加载驱动:Class.forName(driver);  

         数据库连接地址:String url="jdbc:oracle:thin:@ip地址:1521:SID";

         数据库用户:String user="system";

         数据库密码:String password="123456";

         通过DriverManager获取数据库连接:Connection con=DriverManager.getConnection();

         MySQL数据库:在项目中导入mysql-connector.jar包

         数据库驱动路径:String driver="com.mysql.jdbc.Driver";

         加载驱动:Class.forName(driver);

         数据库连接地址:String url="jdbc:mysql://IP地址:3306数据库名";

         数据库用户:String user="root";

         数据库密码:String password="123456";

         通过DriverManager获取数据库连接:Connection con=DriverManager.getConnection();

       

      <2>创建语句对象

         (1)用于执行静态 SQL 语句并返回它所生成结果的对象

         Statement state=con.createStatement();

        (2)表示预编译的 SQL 语句的对象

         String sql="delete from emp where id=?";

         PreparedStatement pstate=con.preparedStatement(sql);

      <3>执行SQL语句

        (1)Statement接口执行静态sql的方法

           执行DDL语句:execute(String sql);

             执行DML语句:executeUpdate(String sql);

             执行DQL语句:executeQuery(String sql);

            例如:

           静态sql语句:String sql="update emp set ename='张三' where id=9";

           执行sql语句:int rows=state.executeUpdate(sql);

        (2)PreparedStatement接口执行预编译sql语句的方法

           

      <4>处理结果集

        

      <5>关闭连接

        数据库使用使用之后,一定要关闭数据库.

        con.close();

    (二)创建数据库工具类

      <1>数据库配置参数的方式:  

        (1)直接把数据配置写在工具类.

        (2)把数据库配置写在一个properties属性文件里,工具类读入属性文件,逐行获取数据库参数.(建议使用)

      <2>.properties文件和java Properties类

        (1).properties文件的使用:

           1)文件中不允许使用中文

           2)#表示注释

           3)存储数据是用键值对的方式

           4)每条语句结尾没有任何标点符号

           例如:

             创建一个db.properties文件,在文件中存入如下代码:

             driver=oracle.jdbc.driver.OracleDriver

             url=jdbc:oracle:thin@:192.168.12.72:1521:orcl

             user=system

             password=1234

        (2)如何读取property文件

           在java.util包中有一个Properties类(继承与HashTable,线程安全的散列表),专门用于操作.preperties文件的读写

           1)新建Properties对象

             Properties p=new Properties();

           2)通过对象调用load(InputStream in)来加载.properties文件 输入流可以通过类加载器获得

             p.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));

           3)调用方法String getProperty(String key)来读取.properties文件中的键值对

             String driver=p.getProperty("driver");

      <3>数据库工具类建立流程

            

     数据库工具类DBTool代码如下:

     1 package util;
     2 
     3 import java.io.IOException;
     4 import java.sql.Connection;
     5 import java.sql.DriverManager;
     6 import java.sql.SQLException;
     7 import java.util.Properties;
     8 
     9 public class DBTool {
    10     //定义数据库驱动路径
    11     private static String driver;
    12     //定义数据库连接地址
    13     private static String url;
    14     //定义数据库连接用户名
    15     private static String user;
    16     //定义数据库连接密码
    17     private static String pwd;
    18     
    19     //在类加载时读取连接参数,
    20     //只需要读取一次即可.
    21     static {
    22         //新建一个Propeyties类,用于读取.properties文件
    23         Properties p = new Properties();
    24         try {
    25             //通过Properties的load方法加载.properties文件 输入流有类加载器获取
    26             p.load(DBTool.class.getClassLoader().getResourceAsStream("db.properties"));
    27             //通过Properties的getProperty读取.properties文件存储的键值对信息
    28             driver = p.getProperty("driver");
    29             url = p.getProperty("url");
    30             user = p.getProperty("user");
    31             pwd = p.getProperty("pwd");
    32             //注册驱动,只需注册一次
    33             Class.forName(driver);
    34         } catch (IOException e) {
    35             e.printStackTrace();
    36             throw new RuntimeException(
    37                 "找不到文件", e);
    38         } catch (ClassNotFoundException e) {
    39             e.printStackTrace();
    40             throw new RuntimeException(
    41                 "找不到驱动类", e);
    42         }
    43     }
    44     
    45     /**
    46      * 创建一个连接
    47      * @return 新连接
    48      * @throws SQLException 
    49      *     强制调用者catch异常,怕他忘记写finally,
    50      *  以及在finally中关闭连接.
    51      */
    52     public static Connection getConnection() throws SQLException {
    53         return DriverManager.getConnection(url, user, pwd);
    54     }
    55     /**
    56     * 关闭数据库连接
    57     */
    58     public static void close(Connection conn) {
    59         if(conn != null) {
    60             try {
    61                 conn.close();
    62             } catch (SQLException e) {
    63                 e.printStackTrace();
    64                 throw new RuntimeException(
    65                     "关闭连接失败", e);
    66             }
    67         }
    68     }
    69     
    70 }
    数据库工具类DBTool

     

         

     

        

        

            

  • 相关阅读:
    HDU 5302(Connect the Graph- 构造)
    Redis 集群
    HDFS集中式缓存管理(Centralized Cache Management)
    JavaScript语言基础12
    【IOS】启动画面
    小贝_mysql优化学习
    hdu2099 整除的位数(暴力)
    Receiver type ‘X’ for instance message is a forward declaration
    动态游标(比如表名作为參数)以及动态SQL分析
    mongodb与SQL相应关系表
  • 原文地址:https://www.cnblogs.com/gangbalei/p/5785972.html
Copyright © 2011-2022 走看看