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();
    }
}

 

posted on 2018-10-21 14:50  真正的小明被占用了  阅读(6189)  评论(0编辑  收藏  举报

导航