zoukankan      html  css  js  c++  java
  • JDBC学习笔记(一)基本流程

    一、用JDBC连接mysql数据库基本流程

      

    // 1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");        
    // 2.建立连接
    String url = "jdbc:mysql://localhost:3306/jdbc";
    
    String user = "root";
    String password = "";
    Connection conn = DriverManager.getConnection(url, user, password);
    // 3.创建语句 Statement st = conn.createStatement(); // 4.执行语句 ResultSet rs = st.executeQuery("select id,name,age,money from user"); // 5.处理结果 while(rs.next()) { System.out.print(rs.getObject("id") + "---"); System.out.print(rs.getObject("name") + "---"); System.out.print(rs.getObject("age") + "---"); System.out.println(rs.getObject("money")); } // 6.释放资源 rs.close();
    st.close();
    conn.close();

    二、各流程详解

      1. 注册驱动(只做一次),有三种方式:

    1  // 方式一(推荐使用):
    2  Class.forName("com.mysql.jdbc.Driver");
    3 
    4  // 方式二:
    5  System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
    6 
    7  // 方式三:
    8  DriverManager.registerDriver(new com.mysql.jdbc.Driver());

       其中方式三,会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖,所以不推荐使用。

       方式二虽然不会对具体的驱动类产生依赖,但是注册不太方便,因此也很少使用。

       方式一不会对具体的驱动类产生依赖,书写也比较方便,推荐使用。

      

      2. 建立连接(Connection)

       (1) 代码格式:

         Connection conn = DriverManager.getConnection(url, user, password);

       (2) url格式:

         JDBC:子协议:子名称//主机名:端口/数据库名?属性名=属性值&....

         如果主机名与端口号是缺省值,主机名与端口可省略:

         JDBC:子协议:子名称///数据库名?属性名=属性值&....

       (3) User, Password可以用“属性名=属性值”的方式告诉数据库。

       (4) 其他参数如:

         useUnicode = true&characterEncoding=GBK.

      3. 创建可执行sql语句的对象(Statement)

        Statement st = conn.createStatement();

      4. 执行sql语句,用ResultSet对象接收执行结果

        ResultSet rs = st.executeQuery("select id,name,age,money from user");

      5. 用rs.next()遍历查询到的结果

        while(rs.next())
          {
            System.out.print(rs.getObject("id") + "---");
            System.out.print(rs.getObject("name") + "---");
            System.out.print(rs.getObject("age") + "---");
            System.out.println(rs.getObject("money"));
          }

      6. 释放资源时,按创建时的逆序关闭

        rs.close();

        st.close();

        conn.close();

  • 相关阅读:
    服务器响应状态码
    细说同域-同父域-跨域
    细说Ajax跨域
    为SQL缓存通知启用数据库
    使用PATINDEX()判断含有[A-Z]、[a-z]、[0-9]之外的字符
    记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
    谈谈如何在面试中发掘程序猿的核心竞争力
    “属性”与“特性”区别
    【转】安卓手机无法安装软件的原因总结
    【转】自学android半年,已从.net转型成android程序员
  • 原文地址:https://www.cnblogs.com/pengyin/p/6359963.html
Copyright © 2011-2022 走看看