zoukankan      html  css  js  c++  java
  • jdbc java数据库连接 3)Statement接口之执行DDL、DML、DQL

    |- Statement接口 用于执行静态的sql语句

        |- int executeUpdate(String sql)   执行静态的更新sql语句(DDLDML

        |- ResultSet executeQuery(String sql)  :执行的静态的查询sql语句(DQL

      |-PreparedStatement接口(Statement接口的子类):用于执行预编译sql语句

          |- int executeUpdate() 执行预编译的更新sql语句(DDLDML

          |-ResultSet executeQuery()   执行预编译的查询sql语句(DQL

      代码:(用DDL语句中的创建来举例,其他的DDL语句,除了发送的sql语句不一样之外,都一样)

      

     1 public class Statement_one {
     2 
     3     // 数据库的信息
     4     // URL
     5     private static String url = "jdbc:mysql://localhost:3306/day1029";
     6     // 用户名和密码
     7     private static String user = "root";
     8     private static String password = "root";
     9 
    10     // 执行DDL语句(创建表为例)
    11     private static void DDL() {
    12         // 为了在关闭连接,在这里创建对象
    13         Connection conn = null;
    14         Statement stsm = null;
    15 
    16         try {
    17             // 创建驱动注册对象
    18             Class.forName("com.mysql.jdbc.Driver");
    19 
    20             // 获取连接的数据库对象
    21             /* Connection */conn = DriverManager.getConnection(url, user,
    22                     password);
    23 
    24             // 创建Statement对象
    25             /* Statement */stsm = conn.createStatement();
    26 
    27             // 创建要执行的sql语句
    28             String sql = "CREATE TABLE person(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(10),sex VARCHAR(5),age INT,psot VARCHAR(10),email VARCHAR(20),phone INT)";
    29 
    30             // 使用Statement发送该DDL语句,返回的时该sql语句所影响的行数,int类
    31             int result = stsm.executeUpdate(sql);
    32         } catch (Exception e) {
    33             e.printStackTrace();
    34         }
    35         // 最后关闭连接(后开启的先关闭)
    36         finally {
    37             if (stsm != null) {
    38                 try {
    39                     stsm.close();
    40                 } catch (SQLException e) {
    41                     // TODO Auto-generated catch block
    42                     e.printStackTrace();
    43                     throw new RuntimeException(e);
    44                 }
    45             }
    46             if (conn != null) {
    47                 try {
    48                     conn.close();
    49                 } catch (SQLException e) {
    50                     // TODO Auto-generated catch block
    51                     e.printStackTrace();
    52                     throw new RuntimeException(e);
    53                 }
    54             }
    55         }
    56     }

      代码:用DML的插入数据举例

     1     private static void DML() {
     2 
     3         Connection conn = null;
     4         Statement stsm = null;
     5 
     6         try {
     7             // 创建驱动获取对象
     8             Class.forName("com.mysql.jdbc.Driver");
     9 
    10             // 获取要连接的数据库对象
    11             conn = DriverManager.getConnection(url, user, password);
    12 
    13             // 创建Statement对象
    14             stsm = conn.createStatement();
    15 
    16             // 准备要执行的sql语言
    17             String sql = "INSERT INTO person (NAME,sex,age) VALUES ('小红','女',20);";
    18 
    19             // 执行语句
    20             stsm.executeUpdate(sql);
    21         } catch (Exception e) {
    22             e.printStackTrace();
    23         } finally {
    24 
    25             if (stsm != null) {
    26                 try {
    27                     stsm.close();
    28                 } catch (SQLException e) {
    29                     // TODO Auto-generated catch block
    30                     e.printStackTrace();
    31                     throw new RuntimeException(e);
    32                 }
    33             }
    34             if (conn != null) {
    35                 try {
    36                     conn.close();
    37                 } catch (SQLException e) {
    38                     // TODO Auto-generated catch block
    39                     e.printStackTrace();
    40                     throw new RuntimeException(e);
    41                 }
    42             }
    43 
    44         }
    45 
    46     }

      代价:执行DQL

     1 //DQL(查询数据)
     2     private static void DQL() {
     3         Connection conn = null;
     4         Statement stsm = null;
     5         
     6     try{    
     7         //创建驱动获取对象
     8         Class.forName("com.mysql.jdbc.Driver");
     9         
    10         //创建要连接的数据库对象
    11         conn = DriverManager.getConnection(url, user, password);
    12 
    13         //创建Statement对象
    14         stsm = conn.createStatement();
    15         
    16         //准备sql语言
    17         String sql = "SELECT * FROM person;";
    18         
    19         //执行sql语言
    20         //返回的是ResultSet,表示数据库结果集的数据表
    21         ResultSet rs = stsm.executeQuery(sql);
    22         
    23         //打印一行数据,例:打印第二行的数据
    24         
    25         //一:移动光标到第二行,具体看API的ResultSet
    26         rs.next();
    27         rs.next();
    28         //根据列名查询
    29         int id = rs.getInt("id");
    30         String name = rs.getString("name");
    31         String sex = rs.getString("sex");
    32         //打印
    33         System.out.println(id+","+name+","+sex);
    34         
    35         
    36         //二:打印所有数据,利用迭代。具体查看API的ResultSet
    37     /*    while(rs.next()){
    38             //通过列名来查询,列名的英文字母不分大小写
    39             int id = rs.getInt("id");
    40             String name = rs.getString("name");
    41             String sex = rs.getString("sex");
    42             System.out.println(id+","+name+","+sex);
    43             
    44         }*/
    45         
    46     }
  • 相关阅读:
    日期计算
    普通二叉树转换成搜索二叉树
    每周行情
    virtualbox安装增强功能时【未能加载虚拟光盘】
    linux实用命令之如何移动文件夹及文件下所有文件
    Linux文件夹文件创建、删除
    php 克隆 clone
    function_exists (),method_exists()与is_callable()的区别
    webgrind安装使用详细说明
    windows下redis的安装配置和php扩展使用phpredis
  • 原文地址:https://www.cnblogs.com/LZL-student/p/6012110.html
Copyright © 2011-2022 走看看