package com.itheima.jdbc;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
* JDBC API 详解:Statement Statement是陈述的意思
*/
public class JDBCDemo4_Statement {
// 定义一个测试方法
/**
* 执行DML语句 update 改的操作(DML语句)
* @throws Exception
*/
@Test
public void testDML() throws Exception{
// 1. 注册驱动
// Class.forName("com.mysql.jdbc.Driver"); // mysql5之后的驱动jar包,的注册驱动,可以不写了
// 2. 获取连接:如果连接的是本机mysql并且端口是默认的3306 可以简化,(简化,就是端口号和ip不写)
// 这里的127.0.0.1 可以写成localhost 不想要红色警告可以设置参数后面的键值对(前面加问号)
// useSSL=false (Java的键值对是 键=值 这里不能有空格
String url = "jdbc:mysql:///db1?useSSL=false"; // db1 是数据库名
String userName = "root";
String passWord = "123456";
Connection connection = DriverManager.getConnection(url, userName, passWord);
// 3. 定义sql
String sql = "update account set money = 3000 where id = 1"; // 该数据表中没有id = 5的字段 执行sql语句时:返回 值为0
// 4. 获取执行sql的对象statement statement是陈述的意思
Statement stmt = connection.createStatement();
// 5. 执行sql // 该数据表中没有id = 5的字段 执行sql语句时:返回 值为0
int count = stmt.executeUpdate(sql); // 执行完DML语句 受影响的行数
// 6. 处理结果
// System.out.println(count); // 输出1 代表一行数据被改变
if (count > 0){
System.out.println("执行成功");
} else {
System.out.println("执行失败");
}
// 7. 释放资源 (有两个资源要释放,一个是Connection 一个是statement
stmt.close(); // 先释放statement类的对象(因为他是后开的资源,所以先释放)
connection.close(); // connection是先开的,所以后释放
}
// 定义一个测试方法
/**
* 执行DDL语句
* @throws Exception
*/
@Test
public void testDDL() throws Exception{
// 1. 注册驱动
// Class.forName("com.mysql.jdbc.Driver"); // mysql5之后的驱动jar包,的注册驱动,可以不写了
// 2. 获取连接:如果连接的是本机mysql并且端口是默认的3306 可以简化,(简化,就是端口号和ip不写)
// 这里的127.0.0.1 可以写成localhost 不想要红色警告可以设置参数后面的键值对(前面加问号)
// useSSL=false (Java的键值对是 键=值 这里不能有空格
String url = "jdbc:mysql:///db1?useSSL=false"; // db1 是数据库名
String userName = "root";
String passWord = "123456";
Connection connection = DriverManager.getConnection(url, userName, passWord);
// 3. 定义sql 现在这里执行的是DDL语句 (数据库自定义语言,例如创建数据库)
String sql = "drop database db2"; // 该数据表中没有id = 5的字段 执行sql语句时:返回 值为0
// 4. 获取执行sql的对象statement statement是陈述的意思
Statement stmt = connection.createStatement();
// 5. 执行sql // 该数据表中没有id = 5的字段 执行sql语句时:返回 值为0
int count = stmt.executeUpdate(sql); // 执行完DDL语句,返回的可能是0,
// 因为drop删除数据库操作其实删除成功了,但是还是会返回0
// 6. 处理结果
// System.out.println(count); // 输出1 代表一行数据被改变
// if (count > 0){
// System.out.println("执行成功");
// } else {
// System.out.println("执行失败");
// }
System.out.println(count);
// 7. 释放资源 (有两个资源要释放,一个是Connection 一个是statement
stmt.close(); // 先释放statement类的对象(因为他是后开的资源,所以先释放)
connection.close(); // connection是先开的,所以后释放
}
}