zoukankan      html  css  js  c++  java
  • JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

    JavaEE学习中,JDBC、DriverManger类、Connection接口、Statement接口、ResultSet接口(java 学习中的小记录)

    作者:王可利(Star·星星)

    JDBC(Java Data Base Connectivity,java数据库连接)

    是Java数据库连接技术的简称,提供连接各种常用数据库的能力。

    1.DriverManger类

        依据数据库的不同,管理JDBC驱动

    2.Connection 接口

        负责连接数据库并担任传送数据的任务,如:连接数据库,要有一个通道,那么这个通道就是Connection。

    3.Statement 接口

        由 Connection 产生、负责执行SQL语句,如:有了通道了,我开个车过去就是Statement,执行SQL语句。

    4.ResultSet 接口

        负责保存Statement执行后所产生的查询结果,如,开了车过去了,把东西拿回来,那个东西就是ResultSet。

    JDBC的工作原理

    JDBC API 主要功能:与数据库建立连接、执行SQL语句、处理结果。

    JDBC工作原理

    1.加载JDBC驱动(Class.forName(驱动类))

    2.连接数据库(地址、帐号、密码)Connection 

    3.获取到对象,执行SQL语句,返回结果。Statement

    4.使用完了释放对象 (.close)

    下面进行代码对数据库的  增、查 、删、改、crud

    实例一代码如下:(增加)

    快捷键:快捷导入包:Ctrl + shift + O

     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.Statement;
     6 //实例一:纯Java代码 连接数据库
     7 public class star {
     8     public static void main(String[] args) {
     9         Connection conn = null;
    10         Statement stmt = null;//声明Statement变量
    11         
    12         String sql = "INSERT INTO star_studyone (id,name,sex,age) VALUES ('1', '星星', '男', '12');";
    13         
    14         //1.加载驱动
    15         try {
    16             Class.forName("com.mysql.jdbc.Driver");//加载驱动类
    17         } catch (Exception e) {
    18         }
    19         
    20         //2.获得连接对象
    21         try {
    22             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy", "root", "123456");//连接到数据库
    23             System.out.println("连接成功!");
    24         } catch (Exception e) {
    25             
    26         }
    27         
    28         //3.获取到Statement对象
    29         try {
    30             stmt = conn.createStatement();//获取到Statement对象
    31             stmt.execute(sql);//Statemen对象执行 SQL语句
    32         } catch (Exception e) {
    33             
    34         }
    35         
    36         //4.关闭对象
    37         //先添加的对象后关闭,后添加的对象先关闭
    38         try {
    39             stmt.close();
    40             conn.close();
    41         } catch (Exception e) {
    42         }
    43     }
    44 }

    实例二代码如下:(查询)

     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.Statement;
     4 import java.sql.ResultSet;
     5 
     6 //实例二:
     7 public class star {
     8     public static void main(String[] args) {
     9         Connection conn = null;
    10         Statement stmt = null;//声明Statement变量
    11         ResultSet rs =null; 
    12         
    13         String sql = "SELECT *FROM star_studyone";
    14         
    15         try {
    16             //加载驱动
    17             Class.forName("com.mysql.jdbc.Driver");
    18             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy","root", "123456");
    19             stmt = conn.createStatement();
    20             rs = stmt.executeQuery(sql);//返回查询
    21             
    22             //遍历rs 
    23             //rs.next();指针下移 返回的是布尔值
    24             
    25             while (rs.next()) {
    26                 //在MYSQL数据库中索引从1开始
    27 //                System.out.println(rs.getInt(1)+"	");
    28 //                System.out.println(rs.getString(2)+"	");
    29 //                System.out.println(rs.getString("sex")+"	");
    30 //                System.out.println(rs.getInt("age")+"	");
    31                 
    32                 System.out.println(rs.getObject(1)+"	");
    33                 System.out.println(rs.getObject(2)+"	");
    34                 System.out.println(rs.getObject("sex")+"	");
    35                 System.out.println(rs.getObject("age")+"	");
    36                 
    37             }
    38             System.out.println("=============================");
    39             
    40         } catch (Exception e) {
    41             
    42         }finally{
    43             //如果他是空,才可以关
    44             try {
    45                 if (null != rs) {
    46                     rs.close();
    47                 }
    48                 if (null != stmt) {
    49                     stmt.close();
    50                 }
    51                 if (null != conn) {
    52                     conn.close();
    53                 }
    54                 
    55             } catch (Exception e2) {
    56                 
    57             }            
    58         }        
    59     }
    60 }

    实例代码三:(改、删除)

     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.Statement; 5 
     6 //实例三:
     7 public class star {
     8     public static void main(String[] args) {
     9         Connection conn = null;
    10         Statement stmt = null;//声明Statement变量
    11         
    12         //String sql = "UPDATE star_studyone SET name='星星哥哥' WHERE id = '5' ";//SQL改变语句
    13         String sql = "DELETE FROM star_studyone WHERE id = '5' ";//SQL删除语句
    14         
    15         try {
    16             //加载驱动
    17             Class.forName("com.mysql.jdbc.Driver");
    18             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/starstudy","root", "123456");
    19             stmt = conn.createStatement();
    20             stmt.executeUpdate(sql);
    21                 
    22             System.out.println("=========成功连接=========");
    23             
    24         } catch (Exception e) {
    25             
    26         }finally{
    27             //如果他是空,才可以关
    28             try {
    29                 if (null != stmt) {
    30                     stmt.close();
    31                 }
    32                 if (null != conn) {
    33                     conn.close();
    34                 }
    35                 
    36             } catch (Exception e2) {
    37                 
    38             }            
    39         }        
    40     }
    41 }

    自己犯的错误总结:

    1. 导包不要导错。导这类的包  import java.sql.Connection;

    2. String url = "jabc:mysql://主机名或地址:端口号/数据库的名称";
        如:
        String url = "jabc:mysql://localhost:3306/StarXiaoLi";

    3. Class.forName("com.mysql.jdbc.Driver");  复制类名的时候不能有 .class 多出来

    4. String sql = "INSERT INTO star_studyOne (id,name,sex,age) VALUES (1,'星星','男',12)";

        格式是这样的,字符要有单引号,INSERT INTO 表名(这里直接是属性名字,没有单引号的)VALUES (1,'星星','男',12)";

  • 相关阅读:
    HDU-5514 Frogs 容斥
    2019ICPC EC-FINAL H-King 随机
    2019ICPC EC-FINAL E-Flow 贪心
    洛谷P4200 千山鸟飞绝 Splay
    CodeForces 1249F Maximum Weight Subset 树形dp
    HDU-5534 Partial Tree 完全背包优化
    【数论】Lucas定理
    [APIO2009]抢掠计划 解题报告
    tarjan(缩点)
    树状数组总结
  • 原文地址:https://www.cnblogs.com/StarKL/p/6165717.html
Copyright © 2011-2022 走看看