前面写的数据库-JDBC-初探一章中写过如何在java中连接数据库。
连接数据库的四步操作:
第一步:加载驱动;
第二步:连接数据库;
第三步:使用语句操作数据库
第四步:关闭数据库连接,释放资源;
那一篇中已经详细的说明了一,二,四步,这篇来说说第三步,使用语句操作数据库:
要完整的完成使用语句操作数据库,需要先完成一二两步,这篇只做简短说明,需要引入:
import java.sql.Connection; //用来接收与特定数据库的连接
import java.sql.DriverManager; //驱动管理器类,用于获取连接对象
import java.sql.SQLException; //提供关于数据库访问错误或其他错误信息的异常。
第三步需要引入Statement 接口
import java.sql.Statement; //它的方法用来执行静态的sql语句
1.Statement 接口引入
作用:用于执行静态 SQL 语句并返回它所生成结果的对象。
方法 | 说明 |
---|---|
int executeUpdate(String sql) | 该执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。 |
void close() | 立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。 |
在使用 Statement 接口实现对数据库进行增删改的操作之前,需要先连接数据库,这里将其封装,代码说明:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//这个类有两个方法,用于获取连接对象和关闭数据库
public class DbUtil
{
//驱动名称,加载驱动时会用到
public static String names = "com.mysql.jdbc.Driver";
//下面三个变量,在连接数据库时会用到
//要连接的数据库的名称
public static String url = "jdbc:mysql://localhost:3306/db_book";
//用户名,没更改的话默认是root
public static String user = "root";
//用户密码
public static String password = "123456";
//获取连接的方法,这个方法会返回一个连接对象//需要设置抛出异常
public Connection getCon() throws Exception
{
Class.forName(names); //加载驱动
Connection con = DriverManager.getConnection(url, user, password); //返回一个数据库的连接对象
return con;
}
//关闭的方法,sta是用于执行sql语句的对象,在用完之后也要关闭
//con是连接对象,连接结束后需要关闭
public void close(Statement sta,Connection con)
{
try
{
if(con != null)
{
//先有的连接对象,后有的sta,所以要先关闭con,再关闭sta,顺序一定不能反。
con.close();
System.out.print("关闭数据库成功\n");
if(sta != null)
{
sta.close();
System.out.print("关闭Statement成功\n");
}
else System.out.print("关闭Statement失败\n");
}
}
catch (SQLException e)
{
e.printStackTrace();
System.out.print("关闭数据库失败\n");
System.out.print("关闭Statement失败\n");
}
}
}
一直说数据库,所以先得有一个数据库,下面是我创建的一个数据库,当然随便添加的数据:
这个表主要是关于书籍的信息记载,所以在java里,要创建一个书的(模型)类:
public class _Book
{
String bookName; //根据表,这是书的名称
int bookNameId; //这是书名类型的id
double price; //书的价格
int id; //书的id
//构造方法,书的id是默认自增的,所以不用手动添加。
public _Book(String bookName, int bookNameId, double price)
{
this.bookName = bookName;
this.bookNameId = bookNameId;
this.price = price;
}
//写四个变量的get和set方法
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 int getBookNameId() {
return bookNameId;
}
public void setBookNameId(int bookNameId) {
this.bookNameId = bookNameId;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
下面先看看主方法:
public class Demo
{
static util util1 = new util(); //用于获取连接对象和关闭连接
public static void main(String[] args) throws Exception
{
_Book book = new _Book("我很气",3,996); //这是创建一个书的实例
//这后面的三句就是具体的对数据库进行操作,可以先不看,后面讲。
book.setId(7);
int result = deleteBook(book);
System.out.print(result);
}
}
基本的框架就是上面的了,现在就是具体用Statement 接口实现对数据库的操作。
1.使用 Statement 接口实现添加数据操作
//这个方法实现添加数据操作,它有一个_Book类型的参数,
private static int addBook(_Book book)throws Exception
{
// 创建sql语句
String sql = "insert into t_book values(null,'"
+ book.getBookName()
+ "'," + book.getBookNameId()
+ ","
+
book.getPrice()
+ ");";
//创建获取连接
Connection con = util1.getCon(); //之前自己写的类的方法
Statement sta = con.createStatement(); //创建一个 Statement 对象来将 SQL 语句发送到数据库
int result = sta.executeUpdate(sql); //数据库中执行sql语句,它有一个返回值,详见api
return result; //通过这个返回值判断sql语句是否执行成功
}
2.使用 Statement 接口实现更新数据操作
//这个方法用于实现更新数据的操作
private static int upDateBook(_Book book)throws Exception
{
//这里的book,是我已经设定好的值,然后通过它的id,确定到底是修改哪个字段
// 创建sql语句
String sql = "UPDATE t_book SET bookName = '"
+ book.getBookName()
+ "', bookNameId = "
+ book.getBookNameId()
+ ", price = "
+ book.getPrice() + " WHERE id = " + book.getId() + " ;" ;
//创建获取连接
Connection con = util1.getCon();
Statement sta = con.createStatement();
int result = sta.executeUpdate(sql);
return result;
}
3.使用 Statement 接口实现删除数据操作
//这个方法用于删除数据
private static int deleteBook(_Book book)throws Exception
{
//创建sql语句
String sql = "DELETE FROM t_book WHERE id = " + book.getId() + ";";
//获取连接
Connection con = util1.getCon();
//获取声明
Statement sta = con.createStatement();
//执行sql语句
int result = sta.executeUpdate(sql);
return result;
}
通过这三个方法可以看出,其基本步骤都是一样的,关键在于这三句话:
//获取连接java
Connection con = util1.getCon();
//获取声明
Statement sta = con.createStatement();
//执行sql语句
int result = sta.executeUpdate(sql);
最后总结一下,在java中对数据库进行操作的完整步骤。
1.导入驱动
2.加载驱动
3.获取连接对象(Connection)
4.创建声明对象(Statement)
5.写SQL语句
6.执行SQL语句