zoukankan      html  css  js  c++  java
  • 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 || 点返回首页

  • 相关阅读:
    推荐一个网站设计方面的好网站
    验证错误时,让控件自动得到焦点
    VS中改变WebForm或WinFrom的默认视图
    页面回发时,如何保持ScrollBar的位置
    GridView中模板列的排序问题
    php中'mysqli not found'错误的解决方法
    使用ASP.NET 2.0 输出缓存替换的功能实现Donut Caching
    VS2005中自定义“在文件中查找”返回结果的样式
    document.getElementById("").style和$("").css(name,value)方法的区别?
    利用DebuggerDisplay特性得到更好的Debug体验
  • 原文地址:https://www.cnblogs.com/aeon/p/10746283.html
Copyright © 2011-2022 走看看