项目结构
采用mvc模式创建如上图所示的项目结构
数据库创建学生表
model层
创建数据模型,用来操作与获取数据库,以及界面展示数据
package model;
import java.io.Serializable;
public class Student{
String id;
String name;
float math;
float physical;
float english;
public Student(String id, String name, float math, float physical, float english) {
super();
this.id = id;
this.name = name;
this.math = math;
this.physical = physical;
this.english = english;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getMath() {
return math;
}
public void setMath(float math) {
this.math = math;
}
public float getPhysical() {
return physical;
}
public void setPhysical(float physical) {
this.physical = physical;
}
public float getEnglish() {
return english;
}
public void setEnglish(float english) {
this.english = english;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", math=" + math + ", physical=" + physical + ", english="
+ english + "]";
}
}
dao层
通过JDBC连接数据库
1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2.获取连接
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db","yangpeng","1234");
3.创建发送sql的对象
con.createStatement();
4.定义sql
String selectSql="select * from student";
5.执行sql
RS= smt2.executeQuery(selectSql);
5.源码
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import com.mysql.jdbc.Driver;
import com.mysql.jdbc.Statement;
import model.Student;
import view.P2;
import view.学生信息管理系统;
public class connenct {
Student S;
private java.sql.Statement stm;
private Connection con;
public void set(Student s) {
S=s;
}
public int get(Student s) {
S=s;
int y= con();
return y;
}
public ArrayList<Student> select()
{
ArrayList<Student> AL=new ArrayList<Student>();
String id=null;
String name=null;
float sx;
float wl;
float yy;
ResultSet RS = null;
java.sql.Statement smt2 = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db","yangpeng","1234");
smt2 = con.createStatement();
String selectSql="select * from student";
RS= smt2.executeQuery(selectSql);
while (RS.next()) {
id=RS.getString(1);
name=RS.getString(2);
sx=(float) RS.getDouble(3);
wl=(float) RS.getDouble(4);
yy=(float) RS.getDouble(5);
Student s=new Student(id, name, sx, wl, yy);
AL.add(s);
}
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if (con !=null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (smt2 !=null) {
try {
smt2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return AL;
}
//删除
public int delect(String id)
{
int x = 0;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db","yangpeng","1234");
stm=con.createStatement();
String DeleteSql="delete from student where 学号="+id;
x=stm.executeUpdate(DeleteSql);
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if (con !=null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (stm !=null) {
try {
stm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return x;
}
public int con()
{
int x=0;
//注册驱动器
//com.mysql.jdbc.Driver DR=new Driver();
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db","yangpeng","1234");
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
// 获取操作数据库对象
try {
stm = con.createStatement();
} catch (SQLException e1) {
e1.printStackTrace();
}
String sql="INSERT INTO student(学号,姓名,数学成绩,物理成绩,英语成绩) VALUES('"+S.getId()+"','"+S.getName()+"','"+S.getMath()+"','"+S.getPhysical()+"','"+S.getEnglish()+ "')";//
try {
x=stm.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
finally {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return x;
}
//实现查询展示在修改页面
public Student select2(String ID)
{
Student s = null;
String id=null;
String name=null;
float sx;
float wl;
float yy;
ResultSet RS = null;
java.sql.Statement smt2 = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db","yangpeng","1234");
smt2 = con.createStatement();
String selectSql2="SELECT * FROM student WHERE 学号="+ID;
RS= smt2.executeQuery(selectSql2);
/*while (RS.next()) {
id=RS.getString(1);
name=RS.getString(2);
sx=(float) RS.getDouble(3);
wl=(float) RS.getDouble(4);
yy=(float) RS.getDouble(5);
s=new Student(id, name, sx, wl, yy);
}*/
System.out.println(RS.getString(1));
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if (con !=null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (smt2 !=null) {
try {
smt2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return s;
}
//实现修改功能
public int updete(Student s)
{
int x=0;
//注册驱动器
//com.mysql.jdbc.Driver DR=new Driver();
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db","yangpeng","1234");
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
// 获取操作数据库对象
try {
stm = con.createStatement();
} catch (SQLException e1) {
e1.printStackTrace();
}
String sql="UPDATE Student SET 数学成绩="+s.getMath()+","+"物理成绩="+s.getPhysical()+","+"英语成绩="+s.getEnglish()+"WHERE 学号="+s.getId();//
try {
x=stm.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
finally {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return x;
}
}
View层
通过继承Jframe来创建窗口,使用选项卡经行分栏,使得功能分开,每个面板使用Jpanel
1.效果图
源码在博主的github上,自行下载GitHub - yp1919597583/JavaSE
结语
javase课程设计比较简单,但是又是非常重要,对于后面JavaWEB来说,这是必须要打好的基础,不然到后面,会像坐飞机一样,所以希望博主的代码只是借鉴,希望要有自己的思考。另外有什么问题可以在评论区留言,我回一一解答。