zoukankan      html  css  js  c++  java
  • JDBC中执行SQL语句的方式

    一.执行DDL、DML语句

    DDL、DML分别表示数据库定义语言、数据库操纵语言,操控这两种语言应该使用Statement对象的executeUpdate方法。

    代码如下:

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");//加载驱动
            //获得一个物理会话
        Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
            //得到一个Statement对象
        Statement stat=conn.createStatement();
        String DDL_sql="create table if not exists tab(tab_id varchar(10) primary key,tab_name varchar(20))";
        String DML_sql="insert into tab values('T0002','狗王')";
        System.out.println(stat.executeUpdate(DDL_sql));//输出执行DDL语句的返回值
        System.out.println(stat.executeUpdate(DML_sql));//输出执行DML语句的返回值
        }

    结果如下:对于DDL语句返回的是0,对于DML语句返回的是受影响的行数。

    二.执行DQL语句

     对于查询语句应该使用Statement对象的executeQuery方法代码如下:

         Class.forName("com.mysql.jdbc.Driver");
            Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
            Statement stat =conn.createStatement();
            String DQL_sql="select * from tab";
            ResultSet rs=stat.executeQuery(DQL_sql);

     得到的是一个ResultSet的结果集。

    三.使用PreparedStatement执行SQL语句

    一个预处理的Statement对象。代码如下:

    package StudyJDBC;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    
    
    /**
     * @ClassName PreparedStatementText
     * @Author 真正的小明被占用了
     * @Date 2018/10/21/021 11:15
     * @Version 1.0
     */
    public class PreparedStatementText {
    
        public static void main(String[] args) throws Exception {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
            //创建一个PreparedStatement对象
            PreparedStatement perpare=conn.prepareStatement("insert into tab values (?,?)");//对象在创建之初就有了预编译
            perpare.setString(1,"T00003");//设置第一个占位符的类型和值
            perpare.setString(2,"李武");//设置第二个
            perpare.executeUpdate();//执行的还是DML语句所以使用executeUpdate方法
        }
    }

    四.查询结果管理集

    package StudyJDBC;
    
    import java.sql.*;
    import java.util.ArrayList;
    
    /**
     * @ClassName ReasultSetText
     * @Author 真正的小明被占用了
     * @Date 2018/10/21/021 13:48
     * @Version 1.0
     */
    public class ReasultSetText {
    
        public static void main(String[] args) throws Exception {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
            Statement stat=conn.createStatement();
            //创建一个结果集接受查询结果
            ResultSet rs=stat.executeQuery("select * from tab");
            //现在rs结果集有三行三列,
            rs.next();//第一行
            System.out.println(rs.getString("tab_id"));
            rs.absolute(2);//跳转到第二行
            System.out.println(rs.getString("tab_id"));
            rs.first();//直接回到第一行
            System.out.println(rs.getString("tab_id"));
            rs.close();
        }
    }
  • 相关阅读:
    vue_03
    vue03
    vue2
    vue02
    vue 01
    JavaScript要点 (一) 变量-作用域
    在iOS应用程序中打开设备设置界面及其中某指定的选项界面
    多线程操作Coredata(转)
    iOS_城市定位
    本地验证码
  • 原文地址:https://www.cnblogs.com/SAM-CJM/p/9824392.html
Copyright © 2011-2022 走看看