学生选课系统连接Mysql数据库docx.docx
《学生选课系统连接Mysql数据库docx.docx》由会员分享,可在线阅读,更多相关《学生选课系统连接Mysql数据库docx.docx(20页珍藏版)》请在冰点文库上搜索。
学生选课系统连接Mysql数据库docx
/*
JDBC连接数据库
*/
packageimmoc4.bao;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassJDBC{
privatestaticfinalStringURL="jdbc:
mysql:
//localhost:
3306/a?
characterEncoding=utf8";privatestaticfinalStringUSER="root";
privatestaticfinalStringPASSWORD="995923";
privatestaticConnectionconn=null;
static{
try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(URL,USER,PASSWORD);
}catch(ClassNotFoundExceptione){e.printStackTrace();
}catch(SQLExceptione){e.printStackTrace();
}
}
publicstaticConnectiongetConnection(){
returnconn;
}
}
/*登录界面
*/
PaCkageimmoc4.bao;
importjava.awt.FlowLayout;
importjava.awt.event.ActionEVent;
importjava.awt.event.ActionLiStener;
importjava.sql.SQLException;
importjava.util.Scanner;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
PUbIiCclassVieWextendsJFrame{
StatiCGongNenggn=newGongNeng();
StatiCStUdentS=newStUdent();
StatiCJTeXtFieIdtext1;
StatiCJTeXtFieIdtext2;
StatiCJBUttOnbutton;
PUbIiCvoiddenglu(){
SetLayOUt(newFlowLayout());add(newJLabel("用户id:
"));text1=newJTeXtField(20);
add(text1);
add(newJLabel("密码:
"));
text2=newJTeXtField(20);
add(text2);
button=newJBUttOn("登录");add(button);
//关闭窗口
SetViSible(true);
SetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
PUbIiCStatiCvoidmain(String[]args){
VieWdl=newView();
dl.setBounds(300,300,300,200);
dl.setTitle("学生选课管理系统");
dl.denglu();
button.addActionListener(newActionListener(){
PUbIiCvoidactionPerfOrmed(ACtionEvente){//ToDoAuto-generatedmethodStUb
dl.dispose();
s.setStudent_id(lnteger.parselnt(text1.getText()));s.setStudent_code(text2.getText());
try{
gn.COrreSPOnd(s);
}CatCh(SQLEXCePtiOne1){
//TODOAuto-generatedCatChblock
e1.printStackTrace();
}
}
});
}
}
/*
主界面
*/
丨=i回宫|]游⅛■课程IlOM瞧裸程∣∣~ISS褥程I「查BtiB程I邊程号=][查洵
I-I
PaCkageimmoc4.bao;
importjavax.swing.*;
importimmoc4.bao.Course;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.SQLException;
PUbIiCclassCardextendsJFrame{
/*
*JFrame的布局管理器是BOrderLayOUt
*/
COUrSeg=newCOUrSe();
GongNenggn=newGongNeng();
JPanelp;〃位于中心区域的面板
JBUttOnb1,b2,b3,b4;//位于北部区域的四个按钮
JBUttOnadd;
JBUttOndelete;
JBUttOnupdate;
JBUttOnquery;
JLabeIadd_id,add_name,add_teacher_name;
JLabeIdelete_id;
JLabeIUPdate_id,update_name,update_teacher_name;
JLabeIquery_id;
JLabeIquery_show;
JTextFieldtext_add_id,text_add_name,text_add_teacher_name;
JTextFieldtext_delete_id;
JTextFieldtext_update_id,text_update_name,text_update_teacher_name;
JTextFieldtext_query_id;
JTextAreaarea_query_show;
CardLayoutc;//设置面板p的布局
Card()
{
super();
this.setVisible(true);this.setBounds(400,300,400,300);
p=newJPanel();//实例化p
c=newCardLayout();//实例化c
p.setLayout(c);//设置面板P的布局为c,等价于P=newJPanel(c);
//实例化4个按钮和标签
b1=newJButton("添加课程");
b2=newJButton("删除课程");
b3=newJButton("修改课程");
b4=newJButton("查询课程");
//实例化4个子面板并设定相应背景颜色
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
JPanelp4=newJPanel();
//p1.setLayout(
p1.setBackground(Color.green);p2.setBackground(Color.pink);
p3.setBackground(Color.orange);
1,2,3,4代替
p4.setBackground(Color.lightGray);
//把上面4个面板添加到中心面板p中,并把4个面板分别用编号为
p.add(p1,"1");
p.add(p2,"2");
p.add(p3,"3");
p.add(p4,"4");
//实例化位于南部区域的面板,并添加4个按钮
JPanelpnorth=newJPanel();
pnorth.add(b1);
pnorth.add(b2);
pnorth.add(b3);
pnorth.add(b4);
//把p,psourth分别添加到本JFrame的中心区域和南部区域
this.add(p);//等价于this.add(p,BorderLayout.CENTER);因为默认是把组件添加到中部
this.add(pnorth,BorderLayout.NORTH);
//添加课程
add_id=newJLabe1("课程号");text_add_id=newJTextField(30);add_name=newJLabel("课程名");text_add_name=newJTextField(30);add_teacher_name=newJLabel("教师名");text_add_teacher_name=newJTextField(30);add=newJButton("添加");
//为按钮b1添加监听器,当被按下时显示面板p中的前一个子面板b1.addActionListener(newActionListener()
{
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstubc.show(p,"1");//显示p中的上一个面板p1.add(add_id);
p1.add(text_add_id);
p1.add(add_name);
p1.add(text_add_name);
p1.add(add_teacher_name);
p1.add(text_add_teacher_name);
p1.add(add);setVisible(true);
}
});
add.addActionListener(newActionListener(){
@OverridepublicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
g.setId(Integer.parseInt(text_add_id.getText()));g.setName(text_add_name.getText());
g.setTeacher_name(text_add_teacher_name.getText());try{
gn.addcourse(g);
}catch(Exceptione1){
//TODOAuto-generatedcatchblocke1.printStackTrace();
}
}
});
//删除课程
delete_id=newJLabel("课程号");text_delete_id=newJTextField(20);delete=newJButton("删除");
ZZ为按钮b2添加监听器,当被按下时显示面板P中的第2个子面板
b2.addActionListener(newActionListener()
{
@Override
PublicvoidactionPerformed(ActionEvente){
ZZTODOAuto-generatedmethodstubc.show(P,"2");ZZ显示P中代号为2的面板P2.add(delete_id);
P2.add(text_delete_id);
P2.add(delete);
setVisible(true);}
});
delete.addActionListener(newActionListener(){
@Override
PublicvoidactionPerformed(ActionEvente){ZZTODOAuto-generatedmethodstub
intid=Integer.parseInt(text_delete_id.getText());try{
gn.delCourse(id);
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblocke1.printStackTrace();
}
}
});
//修改课程
update_id=newJLabel("课程号");text_update_id=newJTextField(30);update_name=newJLabel("课程名");text_update_name=newJTextField(30);update_teacher_name=newJLabel("教师名");text_update_teacher_name=newJTextField(30);update=newJButton("修改");
//以下类推b3.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubc.show(p,"3");
p3.add(update_id);p3.add(text_update_id);p3.add(update_name);p3.add(text_update_name);p3.add(update_teacher_name);p3.add(text_update_teacher_name);p3.add(update);
setVisible(true);
}
});
update.addActionListener(newActionListener()
{
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
intid=Integer.parseInt(text_update_id.getText());g.setId(Integer.parseInt(text_update_id.getText()));g.setName(text_update_name.getText());
g.setTeacher_name(text_update_teacher_name.getText());try{
gn.updatecourse(g);
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblocke1.printStackTrace();
}
}
});
//查询课程
query_id=newJLabel("课程号");text_query_id=newJTextField(20);query=newJButton("查询");b4.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubc.show(p,"4");
p4.add(query_id);p4.add(text_query_id);
p4.add(query);setVisible(true);
}
});
query.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubintid=Integer.parseInt(text_query_id.getText());
try{
gn.get(id);
}CatCh(SQLEXCePtione1){
//ToDoAuto-generatedCatChblocke1.printStackTrace();
}
}
});
/*
底层增删改查功能
*/
PaCkageimmoc4.bao;
importj
importj
importjava.sql.Connection;
importjava.sαl.Date:
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Map:
importjavax.swing.JLabel;
importj
PUbIiCclassGongNeng{
CUeCUe=newCue();
//添加课程功能
PUbIiCvoidaddcourse(Courseg)throwsEXCePtion{
Listresult=newArrayLiSt();
Connectionconn=JDBC.getConnection();
StringBuilderSb=newStringBuilder();
Sb.append("select*fromStUdent_course");
PreParedStatementPtmt=conn.prepareStatement(Sb.toString());
ReSUItSetrs=Ptmt.executeQuery();//ReSUItSet表示数据库结果集的数据
表,通常通过执行查询数据库的语句生成,用while循环来表示结果集
intX=1;
while(rs.next()){
if(g.getId()==rs.getlnt("id")){//当输入的课程号不存在的异常处理
X=0;
if(x==1){
Ptmt=conn.PrePareStatement("insertinto
StUdent_course(id,name,teacher_name)VaIUeS(?
?
?
)");
//SPreParedStatement是SQL语句被预编译并存储在PreParedStatement
//对象中。
然后可以使用此对象多次高效地执行该语句
Ptmt.setInt(1,g.getld());
Ptmt.execute();
}else{
CUe.denglu("对不起,你输入的课程号已存在,请重新输入");
//修改课程功能
//删除课程功能
PUbIiCVoiddelCourse(intid)throwsSQLEXCePtiOn{
LiStVCourse>result=newArrayLiSt();
Connectionconn=JDBC.getConnection();
StringBuilderSb=newStringBuiIder();
Sb.append("select*fromStUdent_course");
PreParedStatementPtmt=conn.prepareStatement(Sb.toString());
ReSUItSetrs=Ptmt.executeQuery();//ReSUItSet表示数据库结果集的数据
表,通常通过执行查询数据库的语句生成
//用while循环来表示结果集
intX=0;
while(rs.next()){
if(id==rs.getlnt("id")){//当输入的课程号不存在的异常处理
X=1;
}
}
if(x==1){
Ptmt=conn.PrePareStatement("deletefromStUdent_course"+"Where
id=?
");
Ptmt.setInt(1,id);
Ptmt.execute();
}else{
CUe.denglu("你输入的课程号不存在,请重新输入");
}
}
查询课程功能
PUbIiCvoidget(lntegerid)throwsSQLEXCePtion{
LiStVCourse>result=newArrayLiStVCourse>();
Connectionconn=JDBC.getConnection();
StringBuilderSb=newStringBuiIder();
Sb.append("select*fromStUdent_course");
PreParedStatementPtmt=conn.prepareStatement(Sb.toString());
ReSUItSetrs=Ptmt.executeQuery();//ReSUItSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成
//用while循环来表示结果集
intX=0;
while(rs.next()){
if(id==rs.getlnt("id")){//当输入的课程号不存在的异常处理
X=1;
}
}
if(x==1){
CoUrSeg=nUIl;
Connectionconn1=JDBC.getConnecti