用java对数据库增删改查

初学这个,发一下自己写的东西吧

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.Scanner;

import com.pojo.Emp;

public class DatabaseUntils {
	//创建数据库的连接信息
	private String userName = "root";
	private String passWord = "123456";
	private String url = "jdbc:mysql://localhost:3306/test?useSSL=true";
	private Connection connection;
	private Emp emp;
	//加载驱动
	{
		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("驱动连接成功");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("驱动连接失败");
		}
	}
	
	//连接数据库
	public DatabaseUntils() {
		try {
			this.connection = DriverManager.getConnection(url, userName, passWord);
			System.out.println("连接成功");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("连接失败");
		}
	}
	
	//插入员工
	public void addEmp(Emp emp) {
		String sql = "INSERT emp VALUES (?,?,?,?,?,?,?,?)";
		PreparedStatement ps = null;
		try {
			ps = connection.prepareStatement(sql);
			ps.setInt(1, emp.getEmpno());
			ps.setString(2, emp.getEname());
			ps.setString(3, emp.getJob());
			ps.setInt(4, emp.getMgr());
			ps.setDate(5, emp.getHiredate());
			ps.setInt(6, emp.getSal());
			ps.setInt(7, emp.getComm());
			ps.setInt(8, emp.getDeptno());
			int len = ps.executeUpdate();
			System.out.println("一共新增"+len+"行");
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}
	
	//修改员工
	public void updateEmp(String ename,int sal,int comm,int empno) {
		String sql = "UPDATE emp SET ename=?, sal=?, comm=? WHERE empno = ?";
		PreparedStatement ps = null;
		try {
			ps = connection.prepareStatement(sql);
			ps.setString(1, ename);
			ps.setInt(2, sal);
			ps.setInt(3, comm);
			ps.setInt(4, empno);
			ps.executeUpdate();
			System.out.println("修改成功");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	//删除员工
	public void deleteEmp(int empno) {
		String sql = "DELETE FROM emp WHERE empno = ?";
		PreparedStatement ps = null;
		try {
			ps = connection.prepareStatement(sql);
			ps.setInt(1, empno);
			ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	//查询员工
	public Emp selectEmp(int empno) {
		String sql = "SELECT * FROM emp WHERE empno = ?";
		PreparedStatement ps = null;
		ResultSet rs = null;
		Emp result = null;
		try {
			ps = connection.prepareStatement(sql);
			ps.setInt(1, empno);
			rs = ps.executeQuery();
			
			while(rs.next()) {
				result = new Emp();
				result.setEmpno(rs.getInt("empno"));
				result.setEname(rs.getString("ename"));
				result.setJob(rs.getString("job"));
				result.setMgr(rs.getInt("mgr"));
				result.setHiredate(rs.getDate("hiredate"));
				result.setSal(rs.getInt("sal"));
				result.setComm(rs.getInt("comm"));
				result.setDeptno(rs.getInt("deptno"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			if(ps != null) {
				try {
					ps.close();
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		return result;
	}
	
	//查询所有员工信息
	public ArrayList<Emp> selectAllEmp() {
		String sql = "SELECT * FROM emp";
		PreparedStatement ps = null;
		ResultSet set =null;
		ArrayList<Emp> results = null;
		try {
			ps = connection.prepareStatement(sql);
			set = ps.executeQuery();
			
			while(set.next()) {
				if(results == null) {
					results = new ArrayList<Emp>();
				}
				Emp result = new Emp();
				result.setEmpno(set.getInt("empno"));
				result.setEname(set.getString("ename"));
				result.setJob(set.getString("job"));
				result.setMgr(set.getInt("mgr"));
				result.setHiredate(set.getDate("hiredate"));
				result.setSal(set.getInt("sal"));
				result.setComm(set.getInt("comm"));
				result.setDeptno(set.getInt("deptno"));
				results.add(result);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				set.close();
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return results;
	}
	//关闭连接
	public void closeConnection() {
		if(this.connection != null) {
			try {
				this.connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java数据库增删操作通常需要使用JDBC API和相关的数据库驱动程序。以下是一个简单的示例,演示了如何使用JDBC在MySQL数据库中执行增删操作: 1. 导入JDBC驱动程序 在Java项目中使用JDBC访问MySQL数据库之前,需要导入MySQL JDBC驱动程序。可以从MySQL官方网站下载最新的MySQL JDBC驱动程序,并将其添加到Java项目的类路径中。 2. 建立数据库连接 在Java中使用JDBC访问数据库,需要首先建立与数据库的连接。可以通过以下代码建立一个MySQL数据库连接: ``` String url = "jdbc:mysql://localhost:3306/testdb"; String user = "root"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` 其中,url指定了数据库连接的URL,user和password指定了数据库用户的用户名和密码。这里的示例使用了本地MySQL服务器上的testdb数据库,可以根据实际情况修。 3. 执行SQL语句 建立好数据库连接之后,可以使用Java中的Statement或PreparedStatement对象执行SQL语句。以下是一个执行SELECT语句的示例: ``` String sql = "SELECT * FROM users WHERE id = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, 1); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("id: " + id + ", name: " + name + ", age: " + age); } ``` 这里使用了PreparedStatement对象,可以避免SQL注入攻击。通过setInt方法设置SQL语句中的参数,然后调用executeQuery方法执行询,最后通过ResultSet对象获取结果集。 4. 关闭数据库连接 在完成数据库操作后,需要关闭数据库连接以释放资源。可以通过以下代码关闭连接: ``` rs.close(); pstmt.close(); conn.close(); ``` 以上就是Java数据库增删操作的基本步骤。需要根据具体的需求和情况进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值