IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql实现学生信息的增删查 -> 正文阅读

[大数据]mysql实现学生信息的增删查

表名:examstudent

Student.java

package com.g03.bean;

public class Student {

	private int FlowID;
	private int Type;
	private String IDCard;
	private String ExamCard;
	private String StudentName;
	private String Location;
	private int Grade;
	public Student() {
		super();
	}
	public Student(int flowID, int type, String iDCard, String examCard, String studentName, String location,
			int grade) {
		super();
		FlowID = flowID;
		Type = type;
		IDCard = iDCard;
		ExamCard = examCard;
		StudentName = studentName;
		Location = location;
		Grade = grade;
	}
	public int getFlowID() {
		return FlowID;
	}
	public void setFlowID(int flowID) {
		FlowID = flowID;
	}
	public int getType() {
		return Type;
	}
	public void setType(int type) {
		Type = type;
	}
	public String getIDCard() {
		return IDCard;
	}
	public void setIDCard(String iDCard) {
		IDCard = iDCard;
	}
	public String getExamCard() {
		return ExamCard;
	}
	public void setExamCard(String examCard) {
		ExamCard = examCard;
	}
	public String getStudentName() {
		return StudentName;
	}
	public void setStudentName(String studentName) {
		StudentName = studentName;
	}
	public String getLocation() {
		return Location;
	}
	public void setLocation(String location) {
		Location = location;
	}
	public int getGrade() {
		return Grade;
	}
	public void setGrade(int grade) {
		Grade = grade;
	}
	@Override
	public String toString() {
		System.out.println("=======查询结果=======");
		return info();
	}
	private String info() {
		return "流水号:"+FlowID+"\n四/六级:"+Type+"\n身份证号:"+IDCard+"\n准考证号:"+ExamCard+"\n学生姓名:"+StudentName+"\n区域"
				+Location+"\n成绩:"+Grade;
	}
}

StudentCrud.java

package com.g03.preparedstatement;

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Scanner;
import org.junit.Test;
import com.g03.bean.Student;
import com.g03.util.JDBCUtils;

public class StudentCrud {
	Scanner scanner = new Scanner(System.in);

	@Test
	public void StudentInsert() {

		/**
		 * 插入信息
		 */
		System.out.println("请输入四或六级:");// int(5)
		int Type = scanner.nextInt();

		System.out.println("请输入身份证号码:");// vachar(18)
		String IDCard = scanner.next();

		System.out.println("请输入准考证号码:");// vachar(15)
		String ExamCard = scanner.next();

		System.out.println("请输入学生姓名:");// vachar(20)
		String StudentName = scanner.next();

		System.out.println("请输入区域:");// vachar(20)
		String Location = scanner.next();

		System.out.println("请输入成绩:");// int(10)
		int Grade = scanner.nextInt();

		String sql = "insert into examstudent(Type, IDCard, ExamCard , StudentName , Location , Grade)value(?,?,?,?,?,?)";

		int insertCount = update(sql, Type, IDCard, ExamCard, StudentName, Location, Grade);

		if (insertCount > 0) {
			System.out.println("添加成功!");
		} else
			System.out.println("添加失败!");
	}

	/**
	 * 按准考证或身份证查询
	 * 
	 * @param sql
	 * @param args
	 * @return
	 */
	@Test
	public void StudentQuery() {

		String sql = "";

		System.out.println("请选择查询方式");
		System.out.println("1.身份证号:");// vachar(18)
		System.out.println("2.准考证号码:");// vachar(15)

		System.out.printf("请输入1or2:");
		int number = scanner.nextInt();

		switch (number) {

		case 1:
			sql = "select FlowID ,Type, IDCard, ExamCard , StudentName , Location , Grade from examstudent where IDCard=?";
			System.out.println("1.请输入身份证号:");// vachar(18)
			String IDCard = scanner.next();
			Student student = getInstance(Student.class, sql, IDCard);
			if (student != null) {
				System.out.println(student);
			} else
				System.out.println("查无此人");
			break;
		case 2:
			sql = "select FlowID ,Type, IDCard, ExamCard , StudentName , Location , Grade from examstudent where ExamCard=?";
			System.out.println("请输入准考证号:");// vachar(18)
			String ExamCard = scanner.next();
			Student student1 = getInstance(Student.class, sql, ExamCard);
			if (student1 != null) {
				System.out.println(student1);
			} else
				System.out.println("查无此人");
			break;
		case 3:
			System.out.println("输入有误,请重新进入程序");
		}
	}
	
	/**
	 * 使用考生号或身份证号删除学生
	 */
	@Test
	public void deleteStudent() {
		String sql = "";

		System.out.println("请选择删除方式");
		System.out.println("1.身份证号:");// vachar(18)
		System.out.println("2.准考证号码:");// vachar(15)

		System.out.printf("请输入1or2:");
		int number = scanner.nextInt();

		switch (number) {

		case 1:
			sql = "delete from examstudent where IDCard=?";
			System.out.println("1.请输入身份证号:");// vachar(18)
			String IDCard = scanner.next();
			int insertCount = update(sql,IDCard);
			if (insertCount > 0) {
				System.out.println("删除成功!");
			} else
				System.out.println("删除失败!");
			break;
		case 2:
			sql = "delete from examstudent where ExamCard=?";
			System.out.println("请输入准考证号:");// vachar(18)
			String ExamCard = scanner.next();
			int insertCount1 = update(sql,ExamCard);

			if (insertCount1 > 0) {
				System.out.println("删除成功!");
			} else
				System.out.println("删除失败!");
			break;
		case 3:
			System.out.println("输入有误,请重新进入程序");
		}
	}

	// 通用增删改
	public int update(String sql, Object... args) {// Object ...args为可变形参

		Connection conn = null;
		PreparedStatement ps = null;
		try {
			// 1.获取连接
			conn = JDBCUtils.getConnection();
			// 2.预编译sql语句,返回preparedStatement的实例
			ps = conn.prepareStatement(sql);
			// 3.填充占位符
			for (int i = 0; i < args.length; i++) {
				ps.setObject(i + 1, args[i]);
			}
			// 4.执行
			/*
			 * ps.execute(); 如果执行的是查询结果,有返回结果,则此方法返回true 如果执行的是增、删、改操作,没有返回结果,则返回false
			 */
			return (int) ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 5.资源的关闭
			JDBCUtils.closeResource(conn, ps);
		}
		return 0;
	}

	/**
	 * 针对于不同表的通用查询操作,返回表中的一条记录
	 * 
	 * @param <T>
	 * @param clazz
	 * @param sql
	 * @param args
	 * @return
	 */
	public <T> T getInstance(Class<T> clazz, String sql, Object... args) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();
			ps = conn.prepareStatement(sql);
			for (int i = 0; i < args.length; i++) {
				ps.setObject(i + 1, args[i]);
			}

			rs = ps.executeQuery();

			// 获取结果集的元数据:ResultSetMetaData
			ResultSetMetaData rsmd = rs.getMetaData();
			// 通过ResultSetMetaData获取结果集中的列数
			int columnCount = rsmd.getColumnCount();

			if (rs.next()) {

				T t = clazz.newInstance();

				// 处理结果集一行数据中的每一个列
				for (int i = 0; i < columnCount; i++) {
					// 获取列值
					Object columValue = rs.getObject(i + 1);

					// 获取列的别名
					String columnLabel = rsmd.getColumnLabel(i + 1);
					// 给t对象指定的columnClassName属性,赋值为value
					Field field = clazz.getDeclaredField(columnLabel);
					field.setAccessible(true);
					field.set(t, columValue);
				}
				return t;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.closeResource(conn, ps, rs);
		}
		return null;
	}
}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:57:30  更:2021-10-19 11:58:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:03:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码