当前位置:网站首页>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");
}
}
}
}

边栏推荐
- Iphone14 with pill screen may trigger a rush for Chinese consumers
- [729. My schedule I]
- 网上办理期货开户安全吗?网上会不会骗子比较多?感觉不太靠谱?
- [brush title] goose factory shirt problem
- 【剑指 Offer】66. 构建乘积数组
- Sentinel-流量防卫兵
- Deeply cultivate 5g, and smart core continues to promote 5g applications
- [team PK competition] the task of this week has been opened | question answering challenge to consolidate the knowledge of commodity details
- China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
- 【组队 PK 赛】本周任务已开启 | 答题挑战,夯实商品详情知识
猜你喜欢
随机推荐
[Jianzhi offer] 63 Maximum profit of stock
Android privacy sandbox developer preview 3: privacy, security and personalized experience
时间戳strtotime前一天或后一天的日期
Jarvis OJ 远程登录协议
Copy mode DMA
Flet tutorial 12 stack overlapping to build a basic introduction to graphic and text mixing (tutorial includes source code)
BS-XX-042 基于SSM实现人事管理系统
网上办理期货开户安全吗?网上会不会骗子比较多?感觉不太靠谱?
Etcd 构建高可用Etcd集群
解决CMakeList find_package找不到Qt5,找不到ECM
Practical example of propeller easydl: automatic scratch recognition of industrial parts
[brush title] goose factory shirt problem
数据访问 - EntityFramework集成
Clear restore the scene 31 years ago, volcanic engine ultra clear repair beyond classic concert
Enter a command with the keyboard
How does win11 change icons for applications? Win11 method of changing icons for applications
Jarvis OJ Webshell分析
为季前卡牌游戏 MotoGP Ignition Champions 做好准备!
[729. My Schedule i]
Facing new challenges and becoming a better self -- attacking technology er









