JDBC操作数据库:
一、在mysql数据库中建表
二、编写程序
- 创建mysql_conn,存放DB_Helper类,用来连接数据库
- 创建entity包,存放Emp类,作为用户的实体类
- 创建dao包,存放Emp_dao接口,用来定义方法
- 创建dao_impl包,存放接口的实现类Emp_impl
- 创test包,存放Test测试类
具体JDBC简介、架构以及详细的方法可见上篇博客JDBC操作数据库
一、添加用户:
一、接口Emp_dao中定义方法
// 添加用户
public int addUser(Emp emp);
二、接口实现类Emp_impl中实现接口的方法
// 添加用户信息的实现类
@Override
public int addUser(Emp emp) {
int result = 0;
// 获得数据库的连接对象
Connection conn = DB_Helper.getConn();
// 书写SQL语句操作数据库
String sql = "insert into emp(empno,ename,job,mgr) values(?,?,?,?)";
// 预编译SQL语句
try {
PreparedStatement pps = conn.prepareStatement(sql);
pps.setInt(1, emp.getEmpno());
pps.setString(2, emp.getEname());
pps.setString(3, emp.getJob());
pps.setString(4, emp.getMgr());
result = pps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
三、测试类中调用方法
// 添加用户
int result = eil.addUser(new Emp(8,"赵某人","java开发","段段"));
if (result>0){
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
结果如下:
二、删除用户:
一、接口Emp_dao中定义方法
// 删除用户
public int deleteUser(int id);
二、接口实现类Emp_impl中实现接口的方法
// 删除用户的实现类
@Override
public int deleteUser(int id) {
int result = 0;
// 获得数据库的连接对象
Connection conn = DB_Helper.getConn();
// 书写SQL语句操作数据库
String sql = "delete FROM emp WHERE empno = ?";
// 预编译SQL语句
try {
PreparedStatement pps = conn.prepareStatement(sql);
pps.setInt(1,id);
result = pps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
三、测试类中调用方法
// 删除用户
int results = eil.deleteUser(7);
if (results>0){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
结果如下:
三、修改用户数据
一、接口Emp_dao中定义方法
// 修改用户信息
public int updateUser(Emp emp);
二、接口实现类Emp_impl中实现接口的方法
// 修改用户信息
@Override
public int updateUser(Emp emp) {
int result = 0;
// 获得数据库的连接对象
Connection conn = DB_Helper.getConn();
// 书写SQL语句操作数据库
String sql = "UPDATE emp set ename=?,job=?,mgr=? WHERE empno=?";
// 预编译SQL语句
try {
PreparedStatement pps = conn.prepareStatement(sql);
pps.setInt(4, emp.getEmpno());
pps.setString(1, emp.getEname());
pps.setString(2, emp.getJob());
pps.setString(3, emp.getMgr());
result = pps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
三、测试类中调用方法
// 修改用户信息
int result = eil.updateUser(new Emp(8, "杨某", "python开发", "马杰"));
if (result>0){
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
结果如下:
四、查看用户信息
一、接口Emp_dao中定义方法
// 查询某个用户的信息并返回
public Emp findUserById(int id);
二、接口实现类Emp_impl中实现接口的方法
// 定义查询某个用户信息的实现类
@Override
public Emp findUserById(int id) {
Emp emp = null;
// 1、获得数据库的连接对象
Connection conn = DB_Helper.getConn();
// 2、书写SQL语句操作数据表
String sql = "select * from emp WHERE empno=?";
// 3、预编译SQL语句
try {
PreparedStatement pps = conn.prepareStatement(sql);
// 4、给SQL语句占位符赋值
pps.setInt(1, id);
// 5、执行查询命令
ResultSet resultSet = pps.executeQuery();
// 6、循环读取结果集中的数据
while (resultSet.next()) { // 如果结果集中有数据返回true
// 7、 把结果集中的数据读取出来赋值给用户的属性
emp = new Emp();
emp.setEmpno(resultSet.getInt(1));
emp.setEname(resultSet.getString(2));
emp.setJob(resultSet.getString(3));
emp.setMgr(resultSet.getString(4));
}
} catch (SQLException e) {
e.printStackTrace();
}
return emp;
}
三、测试类中调用方法
// 查询到单个用户
Scanner scanner = new Scanner(System.in);
System.out.println("请输入想要查询的编号:");
int number = scanner.nextInt();
Emp user = eil.findUserById(number);
if (user!=null){
System.out.println(user.getEmpno() + "\t" + user.getEname() + "\t" + user.getJob() + "\t" + user.getMgr());
}
结果如下:
更多详细的查询所有用户信息可见上篇博客JDBC操作数据库