当前位置:网站首页>Use JDBC technology and MySQL database management system to realize the function of course management, including adding, modifying, querying and deleting course information.
Use JDBC technology and MySQL database management system to realize the function of course management, including adding, modifying, querying and deleting course information.
2022-07-05 17:01:00 【Oh-liuxing】
package Mooc;
import com.mysql.jdbc.PreparedStatement;
import java.sql.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
// Course DAO Interface
interface ICourseDao {
public int insert(Course course) throws Exception;
public int delete(int id) throws Exception;
public int update(Course course) throws Exception;
public List<Course> select() throws Exception;
}
// Database connection utility class
class DBConnection {
// Get database connection
public static Connection getConnection() throws SQLException {
// Your implementation code
Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/course","root","admin");
return con;
}
// Close the database resource
public static void close(ResultSet rs, PreparedStatement pstmt, Connection conn) throws Exception {
// Your implementation code
rs.close();
pstmt.close();
conn.close();
}
// Close the database resource
public static void close(PreparedStatement pstmt, Connection conn) throws Exception {
// Your implementation code
pstmt.close();
conn.close();
}
}
// Course entity class
class Course {
// Your implementation code
private int id;
private String name;
private double mark;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public double getMark() {
return mark;
}
public void setMark(double mark) {
this.mark = mark;
}
}
// Course DAO Implementation class , Be responsible for the specific implementation of database access operation
class CourseDaoImpl implements ICourseDao {
private static final String SQL_INSERT = "insert into course (name,mark) values(?,?)";
private static final String SQL_DELETE = "delete from course where id=?";
private static final String SQL_UPDATE = "update course set name=?,mark=? where id=?";
public int insert(Course course) throws Exception {
return update(SQL_INSERT, new Object[] { course.getName(), course.getMark(), });
}
public int delete(int i) throws Exception {
return update(SQL_DELETE, new Object[] { i });
}
public int update(Course course) throws Exception {
return update(SQL_UPDATE, new Object[] { course.getName(), course.getMark(), course.getId() });
}
// Query all course information in the table and return it in the form of a list
public List<Course> select() throws Exception {
List<Course> courseList = null;
// Your implementation code
courseList=new LinkedList<>();
Connection con=DBConnection.getConnection();
Statement stat=con.createStatement();
ResultSet rs=stat.executeQuery("select * from course");
while (rs.next()){
Course c=new Course();
c.setId(rs.getInt(1));
c.setName(rs.getString(2));
c.setMark(rs.getDouble(3));
courseList.add(c);
}
return courseList;
}
// Realize the increase of course information 、 Modification and deletion
public int update(String sql, Object[] params) throws Exception {
int flag = 0;
Connection conn = null;
PreparedStatement pstmt = null;
// Your implementation code
conn=DBConnection.getConnection();
pstmt= (PreparedStatement) conn.prepareStatement(sql);
for(int i=0;i<params.length;i++){
pstmt.setObject(i+1,params[i]);
}
pstmt.executeUpdate();
pstmt.close();
conn.close();
return params.length;
}
}
// Test the query of course information separately 、 Increase 、 Modify and delete functions
class Main {
public static void main(String[] args) throws Exception {
// Your implementation code
Scanner sc=new Scanner(System.in);
CourseDaoImpl c=new CourseDaoImpl();
List<Course>courseList=c.select();
System.out.println("course Available data :");
for(Course i:courseList){
System.out.println(i.getId()+" "+i.getName()+" "+i.getMark());
}
System.out.println("------------------------");
System.out.println(" Please enter the operation you want to perform :\n");
System.out.println("1-- increase \n2-- Inquire about \n3-- modify \n4-- Delete \n0-- sign out ");
int n=sc.nextInt();
while(n!=0){
switch (n){
case 1:{
Course co=new Course();
System.out.println(" Please enter name :");
String sn=sc.next();
co.setName(sn);
System.out.println(" Please enter credits :");
Double sm=sc.nextDouble();
co.setMark(sm);
c.insert(co);
System.out.println(" Increase success ");
break;
}
case 2:{
System.out.println(" Please enter ID:");
int k=sc.nextInt();
int f=0;
for(Course i:courseList){
if(i.getId()==k){
System.out.println(i.getId()+" "+i.getName()+" "+i.getMark());
f=1;
System.out.println(" The query is successful ");
break;
}
}if(f==0)
System.out.println(" The result is empty. ");
break;
}
case 3:{
System.out.println(" Please enter to be modified ID:");
Course ce=new Course();
int s1=sc.nextInt();
ce.setId(s1);
System.out.println(" Please enter name :");
String s2=sc.next();
ce.setName(s2);
System.out.println(" Please enter credits :");
ce.setMark(sc.nextDouble());
c.update(ce);
System.out.println(" Modification successful ");
break;
}
case 4:{
System.out.println(" Please enter the... To be deleted ID:");
c.delete(sc.nextInt());
System.out.println(" Delete successful ");
break;
}
default:
System.out.println("error");
}
}
}
}
边栏推荐
- China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
- 齐宣王典故
- Learnopongl notes (I)
- [es6] add if judgment or ternary operator judgment in the template string
- Global Data Center released DC brain system, enabling intelligent operation and management through science and technology
- NPM installation
- Jarvis OJ webshell analysis
- Solution of vant tabbar blocking content
- 二叉树相关OJ题
- 什么是ROM
猜你喜欢
How does win11 change icons for applications? Win11 method of changing icons for applications
【刷題篇】鹅廠文化衫問題
Error in composer installation: no composer lock file present.
How to uninstall MySQL cleanly
高数 | 旋转体体积计算方法汇总、二重积分计算旋转体体积
精准防疫有“利器”| 芯讯通助力数字哨兵护航复市
Etcd 构建高可用Etcd集群
Enter a command with the keyboard
为季前卡牌游戏 MotoGP Ignition Champions 做好准备!
二叉树相关OJ题
随机推荐
麻烦问下,DMS中使用Redis语法是以云数据库Redis社区版的命令为参考的嘛
Allusions of King Xuan of Qi Dynasty
文件操作--I/O
Games101 notes (III)
Sentinel flow guard
If you can't afford a real cat, you can use code to suck cats -unity particles to draw cats
Writing method of twig array merging
精准防疫有“利器”| 芯讯通助力数字哨兵护航复市
Keras crash Guide
Get ready for the pre-season card game MotoGP ignition champions!
手机开证券账户安全吗?怎么买股票详细步骤
[deep learning] [original] let yolov6-0.1.0 support the txt reading dataset mode of yolov5
Scratch colorful candied haws Electronic Society graphical programming scratch grade examination level 3 true questions and answers analysis June 2022
Global Data Center released DC brain system, enabling intelligent operation and management through science and technology
树莓派4b安装Pytorch1.11
Benji Bananas 会员通行证持有人第二季奖励活动更新一览
Detailed explanation of use scenarios and functions of polar coordinate sector diagram
Is it safe to open a securities account by mobile phone? Detailed steps of how to buy stocks
Clear restore the scene 31 years ago, volcanic engine ultra clear repair beyond classic concert
Etcd 构建高可用Etcd集群