zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

数据库程序 详解 操作 查询 进行 插入 控制台
2023-06-13 09:20:10 时间

首先来看一下数据库结构

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

 

然后将数据库中插入如下数据

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

 

eclipse中包和Java文件

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

examStudent包的代码

ExamStudent.java

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

package examStudent; 

public class ExamStudent { 

 /** 

 * 流水号 

 private int flowId; 

 /** 

 * 四级、六级 

 private int type; 

 /** 

 * 身份证号码 

 private int idCard; 

 /** 

 * 准考证号码 

 private int examCard; 

 /** 

 * 学生姓名 

 private String studentName; 

 /** 

 * 区域 

 private String location; 

 /** 

 * 成绩 

 private int grade; 

 public int getFlowId() { 

 return flowId; 

 public int getType() { 

 return type; 

 public void setType(int type) { 

 this.type = type; 

 public int getIdCard() { 

 return idCard; 

 public void setIdCard(int idCard) { 

 this.idCard = idCard; 

 public int getExamCard() { 

 return examCard; 

 public void setExamCard(int examCard) { 

 this.examCard = examCard; 

 public String getStudentName() { 

 return studentName; 

 public void setStudentName(String studentName) { 

 this.studentName = studentName; 

 public String getLocation() { 

 return location; 

 public void setLocation(String location) { 

 this.location = location; 

 public int getGrade() { 

 return grade; 

 public void setGrade(int grade) { 

 this.grade = grade; 

}

ExamStudentDao.java

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

package examStudent; 

import java.util.List; 

import java.util.Scanner; 

import org.junit.Test; 

import tools.SqlTools; 

public class ExamStudentDao { 

 /** 

 * 插入一条数据 

 public void update() { 

 ExamStudent examStudent = new ExamStudent(); 

 // 从控制台输入 Type,idCard,examCard,studentName,location,grade 

 Scanner sc = new Scanner(System.in); 

 System.out.println("请输入考生的详细信息"); 

 System.out.print("Type: "); 

 int type = sc.nextInt(); 

 System.out.print("IDCard: "); 

 int idCard = sc.nextInt(); 

 System.out.print("ExamCard: "); 

 int examCard = sc.nextInt(); 

 System.out.print("StudentName: "); 

 String studentName = sc.next(); 

 System.out.print("Location: "); 

 String location = sc.next(); 

 System.out.print("Grade: "); 

 int grade = sc.nextInt(); 

 // 将从控制台输入的值分别写入ExamStudent中 

 examStudent.setType(type); 

 examStudent.setIdCard(idCard); 

 examStudent.setExamCard(examCard); 

 examStudent.setStudentName(studentName); 

 examStudent.setLocation(location); 

 examStudent.setGrade(grade); 

 // sql文 

 String sql = "INSERT INTO exam_student (TYPE,ID_CARD,EXAM_CARD,STUDENT_NAME,LOCATION,GRADE) VALUES (" 

 + examStudent.getType() + "," + examStudent.getIdCard() + "," + examStudent.getExamCard() + "," 

 + examStudent.getStudentName() + "," + examStudent.getLocation() + "," + examStudent.getGrade() 

 + ")"; 

 // 插入一条数据 

 SqlTools.update(sql); 

 System.out.println("插入成功"); 

 /** 

 * 根据身份证号码进行查询 

 public List findByIdCard(String idCard) { 

 String sql = "SELECT * FROM EXAM_STUDENT WHERE ID_CARD=" + idCard; 

 List list = SqlTools.findOne(sql); 

 return list; 

 /** 

 * 根据准考证号码进行查询 

 public List findByExamCard(String examCard) { 

 String sql = "SELECT * FROM EXAM_STUDENT WHERE EXAM_CARD=" + examCard; 

 List ExamStudent list = SqlTools.findOne(sql); 

 return list; 

}

TestExamStudent.java

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

package examStudent; 

import java.util.List; 

import java.util.Scanner; 

public class TestExamStudent { 

 public static void main(String[] args) { 

 ExamStudentDao esd = new ExamStudentDao(); 

 ExamStudent es = new ExamStudent(); 

 Scanner sc = new Scanner(System.in); 

 System.out.println("输入1插入,输入2查询"); 

 int temp = sc.nextInt(); 

 if(temp == 1){ 

 esd.update(); 

 }else if(temp == 2){ 

 System.out.println("进入查询系统"); 

 System.out.println("请选择您要输入的类型:"); 

 System.out.println("3:准考证号"); 

 System.out.println("4:身份证号"); 

 int cardType = sc.nextInt(); 

 if(cardType == 3){ 

 System.out.println("请输入证件号码"); 

 String cardNum = sc.next(); 

 List list = esd.findByExamCard(cardNum); 

 for (Object obj : list) { 

 System.out.println(obj); 

 else if(cardType == 4){ 

 System.out.println("请输入证件号码"); 

 String cardNum = sc.next(); 

 List list = esd.findByIdCard(cardNum); 

 if(list.isEmpty()){ 

 System.out.println("查无此人"); 

 }else{ 

 for (Object obj : list) { 

 System.out.println(obj); 

 else{ 

 System.out.println("系统异常退出"); 

 }else{ 

 System.out.println("系统退出"); 

}

Properties包下的properties文件

jdbcName.properties

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

jdbcName=mySql

mySql.properties

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

driver=com.mysql.jdbc.Driver 

jdbcUrl=jdbc:mysql://localhost:3306/dic 

user=root 

password=123456

tools包下的Java代码

JDBCTools.java

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

package tools; 

import java.io.IOException; 

import java.io.InputStream; 

import java.sql.Connection; 

import java.sql.DriverManager; 

import java.sql.ResultSet; 

import java.sql.SQLException; 

import java.sql.Statement; 

import java.util.Properties; 

 * JDBC 的工具类 

public class JDBCTools { 

 /** 

 * 关闭ResultSet,Statement,Connection 

 public static void release(ResultSet rs, Statement statement, Connection connection) { 

 if (rs != null) { 

 try { 

 rs.close(); 

 } catch (SQLException e) { 

 e.printStackTrace(); 

 if (statement != null) { 

 try { 

 statement.close(); 

 } catch (SQLException e) { 

 e.printStackTrace(); 

 if (connection != null) { 

 try { 

 connection.close(); 

 } catch (SQLException e) { 

 e.printStackTrace(); 

 /** 

 * 关闭Statement,Connection 

 * @param statement 

 * @param connection 

 public static void release(Statement statement, Connection connection) { 

 if (statement != null) { 

 try { 

 statement.close(); 

 } catch (SQLException e) { 

 e.printStackTrace(); 

 if (connection != null) { 

 try { 

 connection.close(); 

 } catch (SQLException e) { 

 e.printStackTrace(); 

 /** 

 * 获取数据库连接的方法 

 * @return 

 * @throws Exception 

 public static Connection getConnection() { 

 // 准备连接数据库的四个字符串 

 // 驱动的全类名 

 String driverClass = null; 

 String jdbcUrl = null; 

 String user = null; 

 String password = null; 

 String jdbcName = null; 

 // 读取jdbcName.properties文件 

 InputStream inStream = JDBCTools.class.getClassLoader().getResourceAsStream("properties/jdbcName.properties"); 

 Properties propertiesOfName = new Properties(); 

 try { 

 propertiesOfName.load(inStream); 

 } catch (IOException e) { 

 e.printStackTrace(); 

 jdbcName = propertiesOfName.getProperty("jdbcName"); 

 // 读取需要的properties 文件 

 InputStream in = JDBCTools.class.getClassLoader().getResourceAsStream("properties/" + jdbcName + ".properties"); 

 Properties properties = new Properties(); 

 try { 

 properties.load(in); 

 } catch (IOException e) { 

 e.printStackTrace(); 

 driverClass = properties.getProperty("driver"); 

 jdbcUrl = properties.getProperty("jdbcUrl"); 

 user = properties.getProperty("user"); 

 password = properties.getProperty("password"); 

 // 加载数据库驱动程序(注册驱动) 

 try { 

 Class.forName(driverClass); 

 } catch (ClassNotFoundException e) { 

 e.printStackTrace(); 

 Connection connection = null; 

 try { 

 connection = DriverManager.getConnection(jdbcUrl, user, password); 

 } catch (SQLException e) { 

 e.printStackTrace(); 

 return connection; 

}

SqlTools.java

从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库
从控制台输入输出,来进行数据库的插入和查询操作的小程序详解数据库

package tools; 

import java.sql.Connection; 

import java.sql.ResultSet; 

import java.sql.ResultSetMetaData; 

import java.sql.Statement; 

import java.util.ArrayList; 

import java.util.HashMap; 

import java.util.List; 

import java.util.Map; 

public class SqlTools { 

 /** 

 * 通用的更新方法:包括INSERT/UPDATE/DELETE 

 * @param sql 

 public static void update(String sql) { 

 Connection connection = null; 

 Statement statement = null; 

 try { 

 connection = JDBCTools.getConnection(); 

 statement = connection.createStatement(); 

 statement.executeUpdate(sql); 

 } catch (Exception e) { 

 e.printStackTrace(); 

 } finally { 

 JDBCTools.release(statement, connection); 

 /** 

 * 通用的查询方法:SELECT 

 @SuppressWarnings({ "unchecked", "rawtypes" }) 

 public static List findOne(String sql) { 

 Connection connection = null; 

 Statement statement = null; 

 ResultSet rs = null; 

 try { 

 // 1.获取Connection 

 connection = JDBCTools.getConnection(); 

 // 2.获取Statement 

 statement = connection.createStatement(); 

 // 4.执行查询,得到ResultSet 

 rs = statement.executeQuery(sql); 

 // 5.处理ResultSet 

 List list = new ArrayList(); 

 ResultSetMetaData metaData = rs.getMetaData(); 

 int columnCount = metaData.getColumnCount(); 

 while (rs.next()) { 

 Map rowData = new HashMap(); 

 for (int i = 1; i columnCount; i++) { 

 rowData.put(metaData.getColumnName(i), rs.getObject(i)); 

 list.add(rowData); 

 return list; 

 } catch (Exception e) { 

 e.printStackTrace(); 

 return null; 

 } finally { 

 // 6.关闭数据库相应的资源 

 JDBCTools.release(rs, statement, connection); 

}

注:1.记得要在lib目录下导入mySql的包,并add

2.入口在Test中,main方法

3.虽然此代码很low,但对于初学者理解还是很有帮助的,逻辑非常简单,但是这里会有冗余的代码,而且有很多地方需要更加优化,有待解决 // TODO

欢迎转载,转载请附此说明,谢谢。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4319.html

mysql