jdbc 增删改查 ,dept练习

package com.dept.main;

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

import com.dept.pojo.Dept;
import com.dept.utils.DBUtil;

/**
 * jdbc 增删改查
 * 部门表:dept
 * 字段:deptno,dname,loc(账号,名称,地区)
 *
 */
public class DeptMain {
	
	
	public static void main(String[] args) {
		Dept dept=new Dept(); 
		//跟新时需要id,插入时不需要id,因为id在数据库里是自增
		dept.setDeptno(90);
		dept.setDname("黑豹");
		dept.setLoc("江南");
		
		//新增,往表里添加数据
		insert(dept);
		//更新操作
		update(dept);
		
		//删除操作
		delete(81);
		//根据id查询单条记录
		Dept oldDept = findById(10);
		System.out.println(oldDept);
		
		//查询列表
		List<Dept> list=findlist("雪豹");
		System.out.println(list);
	}
	
	
	private static List<Dept> findlist(String dname) {
		String sql="SELECT DEPTNO,DNAME,LOC FROM dept WHERE dname like concat('%',?,'%')";
		try {
			Connection conn = DriverManager.getConnection(DBUtil.URL,DBUtil.USER,DBUtil.PASSWORD);
			PreparedStatement stat=conn.prepareStatement(sql);
			
			stat.setObject(1, dname);
			ResultSet rs=stat.executeQuery();
			List<Dept> depts=new ArrayList<>();
			while(rs.next()) {
				Dept dept=new Dept();
				dept.setDeptno(rs.getInt("deptno"));
				dept.setDname(rs.getString("dname"));
				dept.setLoc(rs.getString("loc"));
				depts.add(dept);
			}
			return depts;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}


	private static Dept findById(int deptno) {
		//SELECT DEPTNO,DNAME,LOC FROM dept WHERE DEPTNO=10;
		String sql="SELECT DEPTNO,DNAME,LOC FROM dept WHERE DEPTNO=?;";
	
		try {
			Connection conn = DriverManager.getConnection(DBUtil.URL,DBUtil.USER,DBUtil.PASSWORD);
			PreparedStatement stat=conn.prepareStatement(sql);
			
			stat.setObject(1, deptno);
			ResultSet rs=stat.executeQuery();
			Dept dept=new Dept();
			if(rs.next()) {
				dept.setDeptno(rs.getInt("deptno"));
				dept.setDname(rs.getString("dname"));
				dept.setLoc(rs.getString("loc"));
			}
			return dept;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}


	private static void delete(Integer deptno) {
		//DELETE FROM dept WHERE DEPTNO=82;

		String sql="DELETE FROM dept WHERE DEPTNO=?;";
		try {
			
			Connection conn=DriverManager.getConnection(DBUtil.URL,DBUtil.USER,DBUtil.PASSWORD);
			PreparedStatement stat=conn.prepareStatement(sql);
			
			stat.setObject(1, deptno);
			int rlt=stat.executeUpdate();
			if(rlt>0) {
				System.out.println("删除了"+rlt+"记录");
			}
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
	

	private static void update(Dept dept) {
		//UPDATE dept SET DNAME = '白豹',LOC = '淮南' WHERE DEPTNO =90 ;

		String sql="UPDATE dept SET DNAME = ?,LOC = ? WHERE DEPTNO =? ;";
		try {
			
			Connection conn=DriverManager.getConnection(DBUtil.URL,DBUtil.USER,DBUtil.PASSWORD);
			PreparedStatement stat=conn.prepareStatement(sql);
			
			stat.setObject(1, dept.getDname());
			stat.setObject(2, dept.getLoc());
			stat.setObject(3, dept.getDeptno());
			int rlt=stat.executeUpdate();
			if(rlt>0) {
				System.out.println("更新了"+rlt+"记录");
			}
			
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

	private static void insert(Dept dept) {
		//自增长的 不用插入id
		String sql="INSERT INTO dept(DNAME,LOC) VALUES(?,?);";
		try {
			//创建连接
			Connection conn=DriverManager.getConnection(DBUtil.URL,DBUtil.USER,DBUtil.PASSWORD);
			//预编译语句
			PreparedStatement stat=conn.prepareStatement(sql);
			//设置参数,参数要和预编译的参数个数一致
			stat.setObject(1, dept.getDname());
			stat.setObject(2, dept.getLoc());
			//执行事务
			int rlt = stat.executeUpdate();
			if(rlt>0) {
				System.out.println("成功插入:"+rlt+"条数据");
			}
			//关闭连接
			stat.close();
			conn.close();
			
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

}
package com.dept.utils;

public class DBUtil {
	
	//中文乱码?useUnicode=true&characterEncoding=UTF-8
	public static final String URL = "jdbc:mysql://localhost:3306/stores?useUnicode=true&characterEncoding=UTF-8";
	public static final String USER = "root";
	public static final String PASSWORD = "123";
	
	static {
		try {
			//数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			System.out.println("缺少数据库驱动包");
		}
	}
}
package com.dept.pojo;

public class Dept {
	private Integer deptno;
	private String dname;
	private String loc;
	public Integer getDeptno() {
		return deptno;
	}
	public void setDeptno(Integer deptno) {
		this.deptno = deptno;
	}
	public String getDname() {
		return dname;
	}
	public void setDname(String dname) {
		this.dname = dname;
	}
	public String getLoc() {
		return loc;
	}
	public void setLoc(String loc) {
		this.loc = loc;
	}
	@Override
	public String toString() {
		return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]";
	}
	
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBCJava Database Connectivity)是一种用于执行SQL语句的Java API,它提供了一种连接到数据库的标准方式。下面是JDBC增删改查的详细步骤: 1. 加载JDBC驱动程序 在使用JDBC之前,必须加载适合于数据库的JDBC驱动程序。不同的数据库有不同的JDBC驱动程序,因此你需要根据你使用的数据库加载相应的驱动程序。例如: ``` Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立数据库连接 在加载完JDBC驱动程序之后,就可以建立与数据库之间的连接了。连接的过程需要提供数据库的URL、用户名和密码。例如: ``` String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String user = "root"; String password = "123456"; Connection connection = DriverManager.getConnection(url, user, password); ``` 3. 创建Statement对象 在建立好数据库连接之后,就可以创建一个Statement对象。Statement对象用于执行SQL语句并返回结果。例如: ``` Statement statement = connection.createStatement(); ``` 4. 执行SQL语句 接下来,可以使用Statement对象执行SQL语句。例如: ``` String sql = "SELECT * FROM user"; ResultSet resultSet = statement.executeQuery(sql); ``` 如果要执行增、删、改操作,则可以使用Statement对象的executeUpdate()方法。例如: ``` String sql = "INSERT INTO user(name, age) VALUES('张三', 20)"; statement.executeUpdate(sql); ``` 5. 处理结果集 如果执行的是查询操作,则需要处理查询结果集。查询结果集以ResultSet对象的形式返回。例如: ``` while (resultSet.next()) { String name = resultSet.getString("name"); int age = resultSet.getInt("age"); System.out.println("name: " + name + ", age: " + age); } ``` 6. 关闭连接 在完成JDBC操作之后,需要关闭与数据库的连接。例如: ``` resultSet.close(); statement.close(); connection.close(); ``` 以上就是JDBC增删改查的详细步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值