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

边栏推荐
- Cs231n notes (bottom) - applicable to 0 Foundation
- 面对新的挑战,成为更好的自己--进击的技术er
- American chips are no longer proud, and Chinese chips have successfully won the first place in emerging fields
- Get ready for the pre-season card game MotoGP ignition champions!
- 深耕5G,芯讯通持续推动5G应用百花齐放
- DenseNet
- Games101 notes (I)
- [61dctf]fm
- Wsl2.0 installation
- Win11 prompt: what if the software cannot be downloaded safely? Win11 cannot download software safely
猜你喜欢

dried food! Semi supervised pre training dialogue model space

Etcd build a highly available etcd cluster

Get ready for the pre-season card game MotoGP ignition champions!

Precision epidemic prevention has a "sharp weapon" | smart core helps digital sentinels escort the resumption of the city

NPM installation

【机器人坐标系第一讲】

WSL2.0安装

Solution of vant tabbar blocking content
![[729. My schedule I]](/img/e3/32914227d00cf7595ee850e60f2b72.png)
[729. My schedule I]

Games101 notes (III)
随机推荐
[es6] add if judgment or ternary operator judgment in the template string
机器学习编译第2讲:张量程序抽象
【剑指 Offer】61. 扑克牌中的顺子
Games101 notes (I)
Learnopongl notes (II) - Lighting
采用药丸屏的iPhone14或引发中国消费者的热烈抢购
BS-XX-042 基于SSM实现人事管理系统
【beanshell】数据写入本地多种方法
Wsl2.0 installation
[61dctf]fm
Learnopongl notes (I)
If you can't afford a real cat, you can use code to suck cats -unity particles to draw cats
Deeply cultivate 5g, and smart core continues to promote 5g applications
【剑指 Offer】63. 股票的最大利润
中国广电正式推出5G服务,中国移动赶紧推出免费服务挽留用户
The survey shows that the failure rate of traditional data security tools in the face of blackmail software attacks is as high as 60%
Solution of vant tabbar blocking content
为季前卡牌游戏 MotoGP Ignition Champions 做好准备!
[61dctf]fm
【组队 PK 赛】本周任务已开启 | 答题挑战,夯实商品详情知识