• JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库


    利用JDBC连接到数据库一般需要几个步骤:

    1.装载驱动程序。

    2.建立连接。

    3.发送和执行SQL语句。

    4.释放资源

     

    首先建立一个数据库:

    脚本如下:

     1 create database csdn;
     2 use csdn;
     3 -- 创建用户表
     4 CREATE TABLE USERS 
     5 (
     6   ID INT(7) NOT NULL AUTO_INCREMENT, 
     7   NAME VARCHAR(50) , 
     8   PWD VARCHAR(50), 
     9   PHONE VARCHAR(50) ,
    10   PRIMARY KEY (id),
    11   -- 登录用户名唯一约束
    12   constraint name_unique unique(name)
    13 );
    14 
    15 
    16 
    17 -- 向数据库插入模拟数据
    18 insert into Users (id, name, pwd, phone) values ( 1,'Tom', '123', '110');
    19 insert into Users (id, name, pwd, phone) values (2,'Jerry', 'abc', '119');
    20 insert into Users (id, name, pwd, phone) values ( 3,'Andy', '456', '112');
    21 
    22 select * from users;

    java连接代码如下:

    新建一个项目并导入需要的jar包,完整代码如下:

     

     

     

     

      1 package com.daliu.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  * 测试使用JDBC连接mysql数据库
     11  * 
     12  * @author Administrator
     13  */
     14 public class DBUtil {
     15 
     16     public static void main(String[] args) {
     17 
     18         Connection conn = null;
     19         Statement stmt = null;
     20         ResultSet rs = null;
     21 
     22         /*
     23          * 1.装载驱动程序。 当出现了: java.lang.ClassNotFoundException:
     24          * oracle.jdbc.driver.OracleDriver
     25          * 
     26          * 这个异常时,说明数据库的驱动jar包没有 导入到项目中。 若导入了jar包还报这个错误,大部分原因是 书写的驱动有错误
     27          */
     28 
     29         try {
     30             Class.forName("com.mysql.jdbc.Driver");
     31 
     32             /*
     33              * 2.建立连接。
     34              * 
     35              * 通过调用DriverManager的getConnection方法,获取Connection类的对象,建立连接。
     36              */
     37             String URL = "jdbc:mysql://localhost:3306/csdn";
     38 
     39             conn = DriverManager.getConnection(URL, "root", "123456");
     40 
     41             // 测试一下是否连接成功
     42             System.out.println(conn);
     43 
     44             /*
     45              * 3.通过Connection的createStatement()方法获取数据库操作对象Statement。
     46              * 通过调用Statement对象的executeQuery方法来执行SQL语句。
     47              */
     48             stmt = conn.createStatement();
     49             rs = stmt.executeQuery("SELECT * FROM csdn.users");
     50 
     51             /*
     52              * 4.
     53              * Statement的executeQuery方法的返回值为ResultSet对象。ResultSet表示数据库查询操作的结果集。
     54              * 它具有指向其当前数据行的光标。最初,光标被置于第一行之前,调用其next 方法将光标移动到下一行,该方法在 ResultSet
     55              * 对象没有下一行时返回 false,因此可以在 while 循环中使用它来迭代结果集。
     56              */
     57             while (rs.next()) {
     58                 System.out.println(rs.getInt("ID") + ","
     59                         + rs.getString("NAME") + ","
     60                         + rs.getString("PWD") + ","
     61                         + rs.getString("PHONE"));
     62             }
     63 
     64             /*
     65              * ResultSet提供了getXXX(String column)方法,例如:getInt(String
     66              * column)等,获取当前ResultSet 对象的当前行中指定列名的值,其中参数column表示数据库表中的列名字。
     67              */
     68         } catch (ClassNotFoundException e) {
     69             e.printStackTrace();
     70             System.out.println("驱动类无法找到!");
     71             throw new RuntimeException(e);
     72 
     73         } catch (SQLException e) {
     74             e.printStackTrace();
     75             System.out.println("数据库访问异常!");
     76             throw new RuntimeException(e);
     77         } finally {
     78 
     79             /*
     80              *5. 在finally块中,依次关闭ResultSet对象、Statement对象以及Connection对象。
     81              */
     82             try {
     83                 if (rs != null) {
     84                     rs.close();
     85                 }
     86                 if (stmt != null) {
     87                     stmt.close();
     88                 }
     89                 if (conn != null) {
     90                     conn.close();
     91                 }
     92             } catch (SQLException e) {
     93                 System.out.println("关闭连接时发生异常");
     94             }
     95 
     96         }
     97 
     98     }
     99 
    100 }

    效果如下:

  • 相关阅读:
    Android Listview 隐藏滚动条
    打开Activity时,不自动显示(弹出)虚拟键盘
    Spring Boot web API接口设计之token、timestamp、sign
    WPF ListView点击删除某一行并获取绑定数据
    WPF中控件的显示与隐藏
    WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示
    WPF之DataGrid应用 翻页
    WPF中修改DataGrid单元格值并保存
    DataGrid获取单元格的值
    WPF DataGrid 列宽填充表格方法
  • 原文地址:https://www.cnblogs.com/liuhongfeng/p/4170417.html
Copyright © 2020-2023  润新知