dljd_(007_009)_jdbc执行DQL/DML/DDL语句

一、使用JDBC执行DQL/DML/DDL语句示例

  1.1数据库设计

  

create database jdbc;
use jdbc;

create table test(
id int primary key auto_increment,
name varchar(10)
);

insert into test values(1,"name1");
insert into test values(2,"name2");
insert into test values(3,"name3");
insert into test values(4,"name4");
insert into test values(5,"name5");

  1.2代码实现

  

package edu.aeon.jdbc;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * [说明]:测试jdbc
 * @author aeon(qq:1584875179)
 *
 */

public class Test {
    /**
     * jdbc执行DQL语句
     */
    public static void testDQL(){
        Connection connection=null;
        Statement statement=null;
        ResultSet resultSet=null;
        try {
            Driver driver=new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            String url="jdbc:mysql://localhost:3306/jdbc";
            String username="root";
            String password="root";
            connection=DriverManager.getConnection(url, username, password);
            statement=connection.createStatement();
            String dql_sql="select * from test;";
            resultSet=statement.executeQuery(dql_sql);
            System.out.println("序号	名    称");
            while(resultSet.next()){
                int id=resultSet.getInt("id");
                String name=resultSet.getString("name");
                System.out.println(id+"	"+name);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(null!=resultSet){
                    resultSet.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=statement){
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=connection){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }
    
    /**
     * jdbc执行DML语句
     */
    public static void testDML(){
        Connection connection=null;
        Statement statement=null;
        try {
            Driver driver=new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            String url="jdbc:mysql://localhost:3306/jdbc";
            String username="root";
            String password="root";
            connection=DriverManager.getConnection(url, username, password);
            statement=connection.createStatement();
            String dml_sql="insert into test(name) values('name6')";
            int num=statement.executeUpdate(dml_sql);
            System.out.println("受影响的行数为:"+num);
            
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(null!=statement){
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=connection){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }

    /**
     * jdbc执行DDL语句
     */
    public static void testDDL(){
        Connection connection=null;
        Statement statement=null;
        try {
            Driver driver=new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            String url="jdbc:mysql://localhost:3306/jdbc";
            String username="root";
            String password="root";
            connection=DriverManager.getConnection(url, username, password);
            statement=connection.createStatement();
            String ddl_sql="create table users(id int(4) primary key auto_increment,name varchar(10),password varchar(16));";
            int num=statement.executeUpdate(ddl_sql);
            System.out.println("受影响的行数为:"+num);
            
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(null!=statement){
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=connection){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }
    /**
     * jdbc使用excute方法同时可以执行DQL/DML/DDL语句
     */
    public static void testDQLDMLDDL(){
        Connection connection=null;
        Statement statement=null;
        ResultSet resultSet=null;
        try {
            Driver driver=new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);
            String url="jdbc:mysql://localhost:3306/jdbc";
            String username="root";
            String password="root";
            connection=DriverManager.getConnection(url, username, password);
            statement=connection.createStatement();
            String sql="insert into test(name) values('name6')";
            if(statement.execute(sql)){//如果返回true则表示执行的是DQL,有结果集返回,如果为false则表示返回的是更新计数器
                resultSet=statement.getResultSet();
                System.out.println("序号	名    称");
                while(resultSet.next()){
                    int id=resultSet.getInt("id");
                    String name=resultSet.getString("name");
                    System.out.println(id+"	"+name);
                }
            }else{//如果为false则表示返回的是更新计数器
                int num =statement.getUpdateCount();
                System.out.println("更新了"+num+"条数据!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(null!=statement){
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if(null!=connection){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
    }
    
    public static void main(String[] args) {
        //testDQL();
        //testDML();
        //testDDL();
        testDQLDMLDDL();
    }

}

 测试正常通过!

二、注册驱动的方式

  

   

如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

原文地址:https://www.cnblogs.com/aeon/p/10746283.html