JDBC(二)——Statement接口(很少用)

Statement接口用于执行静态SQL语句,并返回它所生成结果的对象。
切换到package explore视图,Java,将常用方法进行封装,命名为DbUtil,主要是获取了数据库连接。右击要封装的包,新建Class:DbUtil,包名为:com.java.jdbc.util
Ctrl + Shift + F规范格式
先开什么就倒着关闭。
我们可以看出使用Statement接口中的SQL语句需要进行很长的拼接,容易出错,项目开发中一般使用其子接口PrepareStatement接口。

添加数据

三个class:一个是用于获取数据库连接,一个用于添加数据操作,一个包含main函数的测试类。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
* 获取数据库连接
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class DbUtil {
// 数据库地址
private static String dbUrl = "jdbc:mysql://localhost:3306/db_book";
// 驱动名称
private static String jdbcName = "com.mysql.fabric.jdbc.FabricMySQLDriver";
private static String dbUserName = "root"; // 数据库用户名
private static String dbPassword = "123456"; // 数据库密码

/**
*获取数据库连接的方法
* @return
* @throws Exception
*/
public Connection getCon() throws Exception {
Class.forName(jdbcName); //加载数库驱动
System.out.println("加载数据库驱动成功");
Connection con = DriverManager
.getConnection(dbUrl, dbUserName, dbPassword);//获取数据库连接
System.out.println("获取数据库连接成功");
return con;
}
/**
* 关闭连接
* @param con
* @throws Exception
*/
public void close(Statement stat, Connection con) throws Exception {
if (stat != null) {
stat.close();
if (con != null) {
con.close();
}
}

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
* 定义图书模型,面向对象思想
* @author think
*
*/
public class Book {
private int id;
private String bookName;
private String author;
private float price;
private String bookTypeId;

public Book(int id, String bookName, String author, float price, String bookTypeId) {
super();
this.id = id;
this.bookName = bookName;
this.author = author;
this.price = price;
this.bookTypeId = bookTypeId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getBookTypeId() {
return bookTypeId;
}
public void setBookTypeId(String bookTypeId) {
this.bookTypeId = bookTypeId;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
* 添加操作
*/
import java.sql.Connection;
import java.sql.Statement;

import com.java.jdbc.model.Book;
import com.java.jdbc.util.DbUtil;

public class Demo2 {
private static DbUtil dbUtil = new DbUtil();
/**
* 添加
* @param book
* @return
* @throws Exception
*/
private static int addBook2(Book book) throws Exception {
Connection con = dbUtil.getCon(); // 获取数据库连接
String sql = "INSERT INTO t_book (id, bookName, author, price, bookTypeId) " + "VALUES ('" + book.getId() + "', '"
+ book.getBookName() + "', '" + book.getAuthor() + "', '" + book.getPrice() + "', '" + book.getBookTypeId() + "');";
Statement stat = con.createStatement(); // 获取Statement
int rst = stat.executeUpdate(sql); // 操作几条数据就返回几
System.out.println("操作" + rst + "条数据");
dbUtil.close(stat, con);
return rst;
}
/* *//**
* 对数据进行插入操作的方法
*
* @param id
* @param bookName
* @param price
* @param i
* @return
*//*
private static int addBook(int id, String bookName, String author, float price, String bookTypeId)
throws Exception {

return rst;
}*/

public static void main(String[] args) throws Exception{
Book book = new Book(5, "英语", "王二", 87, "1");
int result = addBook2(book);
if (result == 1){
System.out.println("添加成功");
} else System.out.println("添加失败");
}
}

更新数据

删除数据

这个删除就直接是删除id为多少的那条数据,不需要再面向对象了,代码变得简单
private static int deleteBook(int id) throws Exception {
Connection con = dbUtil.getCon();
String sql = “DELETE FROM t_book WHERE id = ” + id;
Statemen stat = con.createStatement();
int rst = stat.executeUpdate(sql);
dbUtil.close();
return rst;
}
public static void main(String[] args) throws Exception {
int result = deletBook(3);
if (result == 1){
System.out.println(“添加成功”);
} else System.out.println(“添加失败”);
}
}