JDBC练习--适合于新手或者温习jdbc(一个简易的在后台的学生信息的增删改查)

穿精又带淫゛_ 提交于 2020-03-04 08:09:31

一个简易的在后台的学生信息的增删改查(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();
		}
	}
}


2.4 加载项目,使它在服务器上运行成功
GOOD GOOD STUDY
DAY DAY UP
结束,谢谢!!!!!!!!!!!!!!!!
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!