数据库-JDBC-使用statement对数据库进行增删查改

前面写的数据库-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语句

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值