zoukankan      html  css  js  c++  java
  • JDBC——Statement执行SQL语句的对象

    Statement该对象用于执行静态SQL语句并返回它产生的结果。
    表示所有的参数在生成SQL的时候都是拼接好的,容易产生SQL注入的问题

    PreparedStatement对象是一个预编译的SQL语句。动态SQL

    功能
    1.执行SQL

    3个方法

    ①方法:execute() 可以执行任意的SQL,用的不多了解
    修饰/返回值类型:boolean

    2.executeUpdate() 执行DML语句

    方法:executeUpdate() 执行DML语句(insert、delete、update)增删改数据。不常使用:DDL语句(create、drop、alter)增删改表和库
    修饰/返回值类型:int


    返回值:执行DML语句受影响的行数。可以通过这个值来判断SQL语句是否执行成功>0执行成功,反之失败。
        执行DDL语句没有返回结果

    插入一条数据

    package cn.itcast.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * insert插入
     * */
    //        第一步不是导入驱动架包了,因为已经导入过了
    public class JdbcDemo2 {
        public static void main(String[] args) {
            Statement stmt = null;
            Connection conn = null;
            try {
    //        1.注册驱动,会抛出ClassNotFoundException异常(MySQL5.0后可省略)
                Class.forName("com.mysql.jdbc.Driver");
    //        2.获取Connection对象,会抛出SQLException异常(因为连接的是本机的数据库所以ip地址和端口号可以省略不写)
                conn= DriverManager.getConnection("jdbc:mysql:///myemployees","root","ROOT");
    //        3.定义SQL
                String sql="insert into job_grades values('ma','16789','16789');";
    //        4.获取执行SQL的对象Staement
                stmt = conn.createStatement();
    //        5.执行SQL(返回一个结果)
                int count = stmt.executeUpdate(sql);//影响的行数
    //        6.处理结果
                System.out.println(count);
                if (count>0){
                    System.out.println("添加成功");
                }else {
                    System.out.println("添加失败");
                }
    //        7.释放资源(如果第5步执行报错就不会执行下面的语句,下面的代码就不会正常执行)
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
    //        8.所以应该在finally里释放资源
    //            stmt.close();因为stmt不是全局变量,所以出了try的作用域就找不到了
    //            先复制Statement stmt =,在等号后赋值为null
    //            删除这句话中的“Statement” stmt = conn.createStatement();
    //          stmt.close();
    //            如果只这样写程序在执行第3步的时候报错,例如密码写错了之类的就会报空指针异常
    //          所以先要判断
    //            释放执行SQL的对象
                if (stmt != null){
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
    //            还要释放数据库连接对象,再次执行上面的操作
                if (conn != null){
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

     

    修改插入的数据

    package cn.itcast.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * update修改
     * */
    public class JdbcDemo3 {
        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            try {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取数据库连接对象
                conn = DriverManager.getConnection("jdbc:mysql:///myemployees", "root", "ROOT");
                //3.定义SQL
                String sql ="update job_grades set highest_sal = '999999' where grade_level = 'ma';";
                //4.获取执行SQL的对象
                stmt = conn.createStatement();
                //5.执行SQL
                int count = stmt.executeUpdate(sql);
                //6.处理返回结果
                System.out.println(count);
                if (count>0){
                    System.out.println("修改成功");
                }else{
                    System.out.println("修改失败");
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                //7.释放资源
                if (stmt != null){
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (conn != null){
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

     

    删除插入的数据

    package cn.itcast.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
    * delete删除
    * */
    public class JdbcDemo4 {
        public static void main(String[] args) {
            //声明数据库连接对象
            Connection conn = null;
            //声明数据库执行对象
            Statement stmt = null;
            try {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取数据库连接对象
                conn = DriverManager.getConnection("jdbc:mysql:///myemployees", "root", "ROOT");
                //3.定义SQL
                String sql ="delete from job_grades where grade_level = 'ma';";
                //4.获取执行SQL的对象
                stmt = conn.createStatement();
                //5.执行SQL
                int count = stmt.executeUpdate(sql);
                //6.处理返回结果
                System.out.println(count);
                if (count>0){
                    System.out.println("删除成功");
                }else{
                    System.out.println("删除失败");
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                //7.释放资源
                if (stmt != null){
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (conn != null){
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

     1.executeUpdate() 执行DDL语句

    package cn.itcast.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    /*
    * DDL语句
    * */
    public class JdbcDemo5 {
        public static void main(String[] args) {
            //声明数据库连接对象
            Connection conn = null;
            //声明数据库执行对象
            Statement stmt = null;
            try {
                //1.注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2.获取数据库连接对象
                conn = DriverManager.getConnection("jdbc:mysql:///myemployees", "root", "ROOT");
                //3.定义SQL
                String sql ="create table stu (id int,name varchar(20));";
                //4.获取执行SQL的对象
                stmt = conn.createStatement();
                //5.执行SQL
                int count = stmt.executeUpdate(sql);
                //6.处理返回结果
                System.out.println(count);
    
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                //7.释放资源
                if (stmt != null){
                    try {
                        stmt.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (conn != null){
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

     

     3.executeQuery()执行DDL语句

    方法:executeQuery(String sql) 执行DQL语句(select)查询语句
    修饰/返回值类型:ResultSet (结果集)

  • 相关阅读:
    【WebService】IIS下部署WebService出现“请求格式无法识别”
    SqlCacheDependency特性
    Frame框架在Html中的应用详解
    一个不错的css——之三行三列等高格局.

    人才战争的书
    2003年三亚游,诸多恶评再一次浮出水面(同事原创)
    转摘记录农民伯伯2011年看的东西
    Office 2010 中打开多个Excel文件只能在同一窗口中显示的问题
    一个50G大小的outlook2010 PST文件
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12376678.html
Copyright © 2011-2022 走看看