一个简易的在后台的学生信息的增删改查(JDBC)
1. 功能实现
==运行程序控制台提示如下:==
1.1 查询所有学生信息
1.2 添加学生信息
1.3 根据id修改学生信息
1.4 根据id删除学生信息
2. 代码实现
2.1 导入数据库信息
-- 1、创建数据库jt_db数据库(如果不存在才创建)
create database if not exists jt_db charset utf8;
use jt_db; -- 选择jt_db数据库
-- 2、在 jt_db 库中创建 stu 表(学生表)
drop table if exists stu;
create table stu(
stuid varchar(50),
name varchar(50),
gender char(2),
addr varchar(50),
score double
);
-- 3、往 stu 表中, 插入记录
insert into stu values("1001",'张三','男', '北京', 86);
2.2 编写JdbcUtil 工具类
package cn.tedu;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/** JDBC工具类 */
public class JdbcUtil {
/**
* 获取数据库连接对象并返回
* @return Connection对象
* @throws Exception
*/
public static Connection getConn() throws Exception{
//1.注册驱动
Class.forName( "com.mysql.jdbc.Driver" );
//2.获取连接
Connection conn = DriverManager.getConnection(
"jdbc:mysql:///jt_db?characterEncoding=utf-8",
"root",
"root");
return conn;
}
/**
* 释放JDBC程序中的资源
* @param conn 连接对象
* @param stat 传输器对象
* @param rs 结果集对象
*/
public static void close(Connection conn,
Statement stat, ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
rs = null;
}
}
if(stat != null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
stat = null;
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
conn = null;
}
}
}
}
==如果你的数据库有密码和用户名请使用自己的==
2.3 编写studentManager的类
package cn.tedu;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
import com.tedu.util.JdbcUtil;
/**
* 学生信息管理系统
* 运行程序,根据选项,可以对学生信息进行增删改查操作。
*/
public class StudentManager {
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
while (true) {
//1.提示选择操作选项
System.out.print("a:查询学生信息\t");
System.out.print("b:添加学生信息\t");
System.out.print("c:修改学生信息\t");
System.out.println("d:删除学生信息");
System.out.println("请输入操作,abcd任选一项:");
String opt = sc.nextLine();
//2.根据选项执行不同操作
if( "a".equalsIgnoreCase( opt ) ){
findAll(); //查询学生信息
}else if( "b".equalsIgnoreCase( opt ) ){
addStu(); //添加学生信息
}else if( "c".equalsIgnoreCase( opt ) ){
updateStu(); //修改学生信息
}else if( "d".equalsIgnoreCase( opt ) ){
deleteStu(); //删除学生信息
}else{
System.out.println("输入错误,请重新输入!");
}
}
}
/** a. 查询所有学生信息 */
private static void findAll() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
String sql = "select * from stu";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
String stuid = rs.getString("stuid");
String name = rs.getString("name");
String gender = rs.getString("gender");
String addr = rs.getString("addr");
double score = rs.getDouble("score");
System.out.println( stuid+","+name+","+gender
+","+addr+","+score );
}
System.out.println("------------------------------------------------------------------------------");
} catch (Exception e) {
e.printStackTrace();
}
}
/** b. 添加学生信息 */
private static void addStu() {
System.out.println("请输入要添加的学生编号:");
String stuid = sc.nextLine();
System.out.println("请输入姓名:");
String name = sc.nextLine();
System.out.println("请输入性别:");
String gender = sc.nextLine();
System.out.println("请输入地址:");
String addr = sc.nextLine();
System.out.println("请输入成绩:");
double score = Double.parseDouble(sc.nextLine());
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
String sql = "insert into stu values(?,?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, stuid);
ps.setString(2, name);
ps.setString(3, gender);
ps.setString(4, addr);
ps.setDouble(5, score);
int rows = ps.executeUpdate();
if (rows > 0) {
System.out.println("添加成功!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
/** c. 根据id修改学生信息 */
private static void updateStu() {
System.out.println("请输入要修改的学生编号:");
String stuid = sc.nextLine();
System.out.println("请输入要修改的姓名:");
String name = sc.nextLine();
System.out.println("请输入要修改的性别:");
String gender = sc.nextLine();
System.out.println("请输入要修改的所在地址:");
String addr = sc.nextLine();
System.out.println("请输入要修改的成绩:");
double score = Double.parseDouble(sc.nextLine());
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
String sql = "update stu set name=?,gender=?"
+ ",addr=?,score=? where stuid=?";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, gender);
ps.setString(3, addr);
ps.setDouble(4, score);
ps.setString(5, stuid);
int rows = ps.executeUpdate();
if (rows > 0) {
System.out.println("修改成功!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
/** d. 根据id删除学生信息 */
private static void deleteStu() {
System.out.println("请输入要删除的学生编号:");
String stuid = sc.nextLine();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtil.getConn();
String sql = "delete from stu where stuid=?";
ps = conn.prepareStatement(sql);
ps.setString(1, stuid);
int rows = ps.executeUpdate();
if (rows > 0) {
System.out.println("删除成功!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}