JDBC进行增删改查

1. 向数据库中新增数据

可以使用ParpareStatement ps=connection.PrepareStatement(“INSERT INTO 表名 values(?,?,?,?)”);可以使用ParpareStatement ps=connection.PrepareStatement(“INSERT INTO 表名 values(?,?,?,?)”);
使用问号来占位,例如:占位符所在的位置是字符串类型,调用的方法为ps.setString(占位号序号,值)如果需要特定日期类型需要转换成字符串然后再给其赋值。
代码实现如下

package demo1;

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

import com.until.ConnectionFactory;
public class Test {

	public static void main(String[] args) {
		//创建数据库查询对象
		Connection connection=ConnectionFactory.getConnection();
		try {
			String sql="INSERT INTO  books VALUES(null,?,?,?)";
			PreparedStatement ps=connection.prepareStatement(sql);
			
			//给占位的问号赋值
			ps.setString(1,"三体");
			ps.setDouble(2, 23.4);
			ps.setInt(3, 10);
			ps.executeUpdate();
			
			
			
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}

}

2. 删除数据库中的数据

语法为delete from books where name=?条件也是用问号占位的,然后直接调用方法,ps.executeUpdate()即可按照书的名字删除该条数据。语法为delete from books where name=?条件也是用问号占位的,然后直接调用方法,ps.executeUpdate()即可按照书的名字删除该条数据。
代码实现如下

package demo3;

import java.sql.Connection;
import java.sql.PreparedStatement;

import com.until.ConnectionFactory;

public class Test {

	public static void main(String[] args) {
		Connection connection=ConnectionFactory.getConnection();
		PreparedStatement ps=null;
		try{
			//根据书名删除书本信息
			ps=connection.prepareStatement("delete from books where name=?");
			ps.setString(1, "雅舍");
			ps.executeUpdate();
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			ConnectionFactory.close(connection,ps);
		}

3. 更新数据库中的数据

语法为UPDATE books set name=? WHERE id=? 所有要更新的内容或者是条件都要使用?占位符,最后在用set修改相应的值。
代码实现如下

package demo4;

import java.sql.Connection;
import java.sql.PreparedStatement;

import com.until.ConnectionFactory;

public class Test {

	public static void main(String[] args) {
		Connection connection=ConnectionFactory.getConnection();
		PreparedStatement ps=null;
		try{
			//更改图书信息
			ps=connection.prepareStatement(" UPDATE books set name=? WHERE id=?");
			ps.setString(1, "三体");
			ps.setDouble(2, 6);
			ps.executeUpdate();
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			ConnectionFactory.close(connection,ps);
		}

	}

}

4. 查询数据库中的数据

JDBC查询数据并将封装的步骤
(1)可以将数据库的数据封装为键值对集合和实体类集合,如果需要封装成一个实体类,该类的集合中的属性和数据库中一张表的字段相对应,并对其属性进行封装。
(2)执行JDBC获取查询结果集对象
(3)使用if语句或者while语句获取结果集对象的下一行数据
(4)在if语句使用结果集取出这一行各列数据
代码实现如下

package com.action;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.entity.Books;
import com.until.ConnectionFactory;

public class Test {

	public static void main(String[] args) {
		 Connection connection=ConnectionFactory.getConnection();
		 PreparedStatement ps=null;
		 ResultSet rs=null;
		 List<Books> list=new ArrayList<Books>();
		 try{
			 String sql="SELECT * FROM books";
			 ps=connection.prepareStatement(sql);
			 //执行查询操作
			 rs=ps.executeQuery();
			 //循环从结果集中取出每一行数据
		     
			 //定义一个对应类型的集合
			 while(rs.next()){
				 //一旦结果集指向下一行,就可以使用结果集取出这一行的数据
				 //将每一行数据都封装为一个对象
				 Books bookinfo=new Books();
				 bookinfo.setId(rs.getInt("id"));
				 bookinfo.setName(rs.getString("name"));
				 bookinfo.setPrice(rs.getDouble("price"));
				 bookinfo.setStock(rs.getInt("stock"));
				 //对象保存到集合中
				 list.add(bookinfo);
			 }
		 }catch(Exception e){
			e.printStackTrace(); 
		 }finally{
			ConnectionFactory.close(connection,ps,rs);
		 }
	     
		for(Books bookinfo:list){
		 System.out.println(bookinfo.getId()+"\t"+bookinfo.getName()+"\t\t"+bookinfo.getPrice());
	 }

	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值