您的位置:首页 > 数据库

JDBC系列:(2)使用Statement执行sql语句

2016-05-11 20:44 381 查看
执行sql语句的接口
接口作用
Statement接口用于执行静态的sql语句
PreparedStatement接口用于执行预编译sql语句
CallableStatement接口用于执行存储过程的sql语句(call xxx)

1、执行DDL语句

package com.rk.db.b_statement;

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

/**
* 使用Statement执行DDL语句(创建表)
* @author RK
*
*/
public class Demo01
{
static//静态代码段
{
try
{
//1.驱动注册程序
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
throw new RuntimeException(e);
}
}

public static void main(String[] args)
{
Connection conn = null;
Statement stmt = null;

String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
String password = "root";

try
{
//2.获取连接对象
conn = DriverManager.getConnection(url, user, password);

//3.创建Statement
stmt = conn.createStatement();

//4.准备sql
String sql = "CREATE TABLE T_Persons(Id INT PRIMARY KEY AUTO_INCREMENT, UserName VARCHAR(20), Pwd VARCHAR(20))";

//5.发送sql语句,执行sql语句,得到返回结果
int count = stmt.executeUpdate(sql);

//6.输出
System.out.println("影响了"+count+"行!");//影响了0行!
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
//7.关闭连接(顺序:后打开的先关闭)
closeQuietly(stmt);
closeQuietly(conn);
}
}

/**
* 安静的关闭
*/
private static void closeQuietly(AutoCloseable ac)
{
if(ac != null)
{
try
{
ac.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}


2、执行DML语句

package com.rk.db.b_statement;

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

/**
* 使用Statement执行DML语句
* @author RK
*
*/
public class Demo02
{
static
{
try
{
//1.驱动注册程序
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
throw new RuntimeException(e);
}
}

public static void main(String[] args)
{
Connection conn = null;
Statement stmt = null;

String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
String password = "root";

try
{
//2.获取连接对象
conn = DriverManager.getConnection(url, user, password);

//3.创建Statement
stmt = conn.createStatement();

//4.准备sql
String sql = "INSERT INTO T_Persons(UserName,Pwd) VALUES('地球人','123456')";//增加
//String sql = "UPDATE T_Persons SET UserName='火星人' WHERE Id=1";//修改
//String sql = "DELETE FROM T_Persons WHERE Id=1";//删除

//5.发送sql语句,执行sql语句,得到返回结果
int count = stmt.executeUpdate(sql);

//6.输出
System.out.println("影响了"+count+"行!");//影响了1行!
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
closeQuietly(stmt);
closeQuietly(conn);
}
}

/**
* 安静的关闭
*/
private static void closeQuietly(AutoCloseable ac)
{
if(ac != null)
{
try
{
ac.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}


3、执行DQL语句

package com.rk.db.b_statement;

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

/**
* 使用Statement执行DQL语句(查询操作)
* @author RK
*
*/
public class Demo03
{
static
{
try
{
//1.驱动注册程序
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
throw new RuntimeException(e);
}
}

public static void main(String[] args)
{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
String password = "root";

try
{
//2.获取连接对象
conn = DriverManager.getConnection(url, user, password);

//3.创建Statement
stmt = conn.createStatement();

//4.准备sql
String sql = "SELECT * FROM T_Persons";

//5.发送sql语句,执行sql语句,得到返回结果
rs = stmt.executeQuery(sql);

//6.输出
while(rs.next())
{
int id = rs.getInt("Id");
String userName = rs.getString("UserName");
String pwd = rs.getString("Pwd");
System.out.println(id + "\t" + userName + "\t" + pwd);
}

}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
closeQuietly(rs);
closeQuietly(stmt);
closeQuietly(conn);
}
}

/**
* 安静的关闭
*/
private static void closeQuietly(AutoCloseable ac)
{
if(ac != null)
{
try
{
ac.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}


4、思维导图



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jdbc statement