java 课程管理系统_课程信息管理系统(javabean + Servlet + jsp)

本文介绍了一个使用Java技术栈(Javabean, Servlet, JSP)实现的课程信息管理系统。该系统能够完成课程的增、删、改、查操作,涉及数据库连接、JDBC操作和用户交互界面。虽然代码较为初级,但已具备基本功能,适合初学者学习。" 121747505,5649022,Android CPU性能瓶颈定位与解决,"['Android开发', '性能优化', '调试工具']
摘要由CSDN通过智能技术生成

此项目做的事一个课程管理系统,需要通过web做一个可以实现课程的增删改查的功能。

需要用到数据库,Servlet和jsp等(第一次使用Servlet和数据库连接,所以代码都比较低级,页面也比较粗糙,还没有实现Servlet处理后数据的回传,还未实现模糊查询)

程序所建的项目如下:

ef603602270d7d26453626aeab770aaf.png

数据表的格式:

faffbe9597af07177fe08da4d6e2eaf3.png

1.首先建立数据库链接

course/src/com.jdbc.util/BaseConnection.java

代码如下:

1 packagecom.jdbc.util;2

3

4 importjava.sql.Connection;5 importjava.sql.DriverManager;6

7 public classBaseConnection {8

9 public static Connection getConnection(){//用这个方法获取mysql的连接

10 Connection conn=null;11 String driver = "com.mysql.jdbc.Driver";12 String url = "jdbc:mysql://localhost:3306/sql?characterEncoding=utf8&useSSL=true";13 String user = "root";14 String password = "";//此处填写数据库连接密码15 try{16 Class.forName(driver);//加载驱动类

17 conn=DriverManager.18 getConnection(url,user,password);//(url数据库的IP地址,user数据库用户名,password数据库密码)

19 }catch(Exception e){20 e.printStackTrace();21 }22 returnconn;23 }24

25 public static voidmain(String[] args) {26 System.out.println("连接成功");27 }28 }

利用javabean建立一个课程类:

course/src/com.jdbc.bean/Course:

代码如下:

1 packagecom.jdbc.bean;2

3 public classCourse {4

5 privateString classname;6 privateString teacher;7 privateString place;8

9 publicString getClassname() {10 returnclassname;11 }12 public voidsetClassname(String classname) {13 this.classname =classname;14 }15 publicString getTeacher() {16 returnteacher;17 }18 public voidsetTeacher(String teacher) {19 this.teacher =teacher;20 }21 publicString getPlace() {22 returnplace;23 }24 public voidsetPlace(String place) {25 this.place =place;26 }27

28

29

30 }

为了后期操作的方便我将一些增删改查的方法写到了一个类中,把他们封装为一个一个的具体的方法

course/src/com.jdbc.dao/JdbcMain.java

代码如下:

1 packagecom.jdbc.dao;2

3

4 importjava.sql.Connection;5 importjava.sql.PreparedStatement;6 importjava.sql.ResultSet;7 importjava.sql.SQLException;8 importjava.util.Scanner;9

10 importcom.jdbc.bean.Course;11 importcom.jdbc.util.BaseConnection;12

13 public classJdbcMain {14 static Scanner in = newScanner(System.in);15 public static voidmain(String[] args) {16 //TODO 自动生成的方法存根

17

18

19 }20

21

22 public static intadd(Course cour)23 {24 Connection conn=BaseConnection.getConnection();25

26 String sql = "insert into course values(?,?,?)";27

28 int b = 0;29 PreparedStatement ps=null;30 try{31

32 ps= conn.prepareStatement(sql);//把写好的sql语句传递到数据库,让数据库知道我们要干什么

33

34 ps.setString(1,cour.getClassname());35

36 ps.setString(2,cour.getTeacher());37

38 ps.setString(3, cour.getPlace());39

40 int a=ps.executeUpdate();//这个方法用于改变数据库数据,a代表改变数据库的条数

41 if(a>0){42 b++;43 System.out.println("添加成功");44

45 }else{46 System.out.println("添加失败");47

48 }49 }catch(Exception e){50 e.printStackTrace();51 }try{52 if(ps!=null){53 ps.close();54 }if(conn!=null){55 conn.close();56 }57 }catch(Exception e2){58 e2.printStackTrace();59 }60

61 returnb;62 }63

64

65

66 public static intupdate(Course cour )67 {68 int b = 0;69

70 Connection conn=BaseConnection.getConnection();71 PreparedStatement ps=null;72 String sql="update course set place=?,teacher=? where class=?";73 try{74 ps=conn.prepareStatement(sql);75

76 ps.setString(1,cour.getPlace());77 ps.setString(2,cour.getTeacher());78 ps.setString(3,cour.getClassname());79 int a=ps.executeUpdate();80 if(a>0){81 b++;82 System.out.println("修改成功");83 }else{84 System.out.println("修改失败");85 }86 }catch(Exception e){87 e.printStackTrace();88 }finally{89 try{90 if(ps!=null){91 ps.close();92 }if(conn!=null){93 conn.close();94 }95 }catch(Exception e2){96 e2.printStackTrace();97 }98 }99

100

101 returnb;102 }103

104

105 public static intdelete(String classname)106

107 {108 int b = 0;109 Connection conn=BaseConnection.getConnection();110 PreparedStatement ps=null;111 String sql="delete from course where class =?";112

113 try{114 ps=conn.prepareStatement(sql);115 ps.setString(1, classname);116 int a=ps.executeUpdate();117 if(a>0){118 b++;119 System.out.println("删除成功");120 }else{121 System.out.println("删除失败");122 }123 }catch(Exception e){124 e.printStackTrace();125 }finally{126 try{127 if(ps!=null){128 ps.close();129 }if(conn!=null){130 conn.close();131 }132 }catch(Exception e2){133 e2.printStackTrace();134 }135 }136 returnb;137 }138

139 public staticCourse find(String s)140 {141 Connection conn=BaseConnection.getConnection();142 PreparedStatement ps=null;143

144 ResultSet rs = null;145

146 Course cour = newCourse();147

148 String sql="select * from course where class =?";149

150 try{151 ps=conn.prepareStatement(sql);152

153 ps.setString(1, s);154 rs=ps.executeQuery();155 if(rs.next()){156 cour.setClassname(rs.getString("class"));157 cour.setTeacher(rs.getString("teacher"));158 cour.setPlace(rs.getString("place"));159

160 }161

162

163

164 } catch(SQLException e) {165 //TODO 自动生成的 catch 块

166 e.printStackTrace();167 } finally{168 try{169 if(ps!=null){170 ps.close();171 }if(conn!=null){172 conn.close();173 }174 if(rs!=null)175 {176 rs.close();177 }178 }catch(Exception e2){179 e2.printStackTrace();180 }181 }182

183 returncour;184 }185

186

187

188 }

下面建立主界面:

主界面主要就是在界面中介入了多个链接,通过对链接的点击,进行页面的跳转,实现不同的操作。

路径/course/WebContent/admin/main.jsp

代码如下:

1

2

3

4

5

6

7

主页面

8

9

10

11 刷新页面

12 增加课程

13 删除课程

14 修改课程

15 查询课程

16 显示全部课程

17

18

19

20

课程添加页面:

路径/course/WebContent/admin/add.jsp

代码如下:

1

2

3

4

5

6

Insert title here

7

8

9

10

11 课程名称:

12 任课教师:

13 上课地点:

14

15

16

17

18

删除页面:主要操作就是通过课程名称找到课程位置,输出一下他的具体信息并将其删除

路径/course/WebContent/admin/delete.jsp

代码如下:

1

2

3

4

5

6

删除界面

7

8

9

10

11

12 输入您要删除的课程:

13

14

15

16

17

修改页面:通过课程名称进行搜索,并对课程信息进行修改,现在还存在的问题是都是通过课程名称找到的还能修改课程名称。

路径/course/WebContent/admin/update.jsp

代码如下:

修改课程信息课程名称:任课教师:上课地点:

查找界面:现在只实现了通过课程名称查找,还没有实现模糊查询

路径/course/WebContent/admin/find.jsp

代码如下:

查找课程名称:

显示所有页面:输出数据库中的全部数据

路径/course/WebContent/admin/show.jsp

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

显示全部

15

16

17

18

19

20 Connection conn=BaseConnection.getConnection();21 PreparedStatement ps=null;22 ResultSet rs = null;23 String sql = "select * from course";24 try{25 ps=conn.prepareStatement(sql);26 rs=ps.executeQuery();//执行数据库查询的方法,放到rs中

27

28

29 String classname = null;30 String teacher = null;31 String place = null;32 while(rs.next()){33

34 classname = rs.getString("class");35

36 teacher = rs.getString("teacher");37 place = rs.getString("place");38

39 //输出结果

40 out.println(classname + "\t" + teacher + '\t' + place + "");41 }42

43 } catch(SQLException e) {44 //TODO 自动生成的 catch 块

45 e.printStackTrace();46 }finally{47 try{48 if(ps!=null){49 ps.close();50 }if(conn!=null){51 conn.close();52 }if(rs!=null)53 {54 rs.close();55 }56 }catch(Exception e2){57 e2.printStackTrace();58 }59 }60

61

62

63

64

65

66 %>

67

68

69

70

根据界面出入的数据,都将其传入Servlet中然后对其进行处理,由于不会使用数据的回传,无法通过页面的形式给出提示信息,所以就用java的提示框进行对结果的提示了

Servlet路径/course/src/servelet/Manage.java

代码如下:

1 packageservelet;2

3 importjava.io.IOException;4 importjava.io.UnsupportedEncodingException;5 importjava.sql.Connection;6 importjava.sql.PreparedStatement;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9 importjava.sql.Statement;10

11 importjavax.servlet.ServletException;12 importjavax.servlet.annotation.WebServlet;13 importjavax.servlet.http.HttpServlet;14 importjavax.servlet.http.HttpServletRequest;15 importjavax.servlet.http.HttpServletResponse;16 importjavax.swing.JOptionPane;17 importjavax.swing.plaf.metal.MetalIconFactory.PaletteCloseIcon;18

19 importcom.jdbc.bean.Course;20 importcom.jdbc.dao.JdbcMain;21 importcom.jdbc.util.BaseConnection;22

23 /**

24 * Servlet implementation class Manage25 */

26 @WebServlet("/Manage")27 public class Manage extendsHttpServlet {28 private static final long serialVersionUID = 1L;29

30 /**

31 *@seeHttpServlet#HttpServlet()32 */

33 publicManage() {34 super();35 //TODO Auto-generated constructor stub

36 }37

38 /**

39 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)40 */

41 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {42 //TODO Auto-generated method stub

43 response.getWriter().append("Served at: ").append(request.getContextPath());44

45 request.setCharacterEncoding("UTF-8");46 String method = request.getParameter("method");47

48

49 if("add".equals(method)) //添加课程

50 {51

52

53 try{54 add(request,response);55 } catch(SQLException e) {56 //TODO 自动生成的 catch 块

57 e.printStackTrace();58 }59

60 }else if("delete".equals(method)) //通过课程名称查找并删除对应的课程(必须是具体的课程名称,否则就显示未找到该课程,也就无法删除)

61 {62 delete(request,response);63 }else

64

65 if("find".equals(method)) //查找课程信息

66 {67 find(request,response);68 }else

69

70 if("update".equals(method)) //通过课程名称进行查找,并对其进行修改(由于只能通过课程查找)

71 {72 update(request,response);73 }74

75 }76

77

78

79

80 private voidupdate(HttpServletRequest request, HttpServletResponse response) {81 //TODO 自动生成的方法存根

82 Course cour = newCourse();83

84 String name = request.getParameter("class");85 String teacher = request.getParameter("teacher");86 String place = request.getParameter("place");87

88 cour.setClassname(name);89 cour.setTeacher(teacher);90 cour.setPlace(place);91 String teachers = "王建民刘立嘉刘丹王辉杨子光";92 String places = "一教二教三教基教";93 String pl = place.substring(0, 2);94

95 if(teachers.indexOf(teacher) != -1)96 {97 if(places.indexOf(pl) != -1)98 {99 int res=JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "提示","是否进行修改",JOptionPane.YES_NO_OPTION);100 if(res==JOptionPane.YES_OPTION)101 {102

103 if (JdbcMain.update(cour)==1) {104

105 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "成功修改", "操作成功" +name, JOptionPane.INFORMATION_MESSAGE);106 response.setHeader("refresh", "0;url=admin/main.jsp"); //点击“是”后执行这个代码块

107 return;108 }else{109 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "操作错误", "请重新操作", JOptionPane.ERROR_MESSAGE);110 response.setHeader("refresh", "0;url=admin/update.jsp");111 return;112 }113 }else

114 {115 response.setHeader("refresh", "0;url=admin/main.jsp"); //点击“否”后执行这个代码块

116 return;117 }118 }else

119 {120 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "上课地点错误", "操作错误", JOptionPane.ERROR_MESSAGE);121 response.setHeader("refresh", "0;url=admin/update.jsp");122 return;123 }124 }else{125 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),"没有这名教师" ,"操作错误",JOptionPane.ERROR_MESSAGE);126 response.setHeader("refresh", "0;url=admin/update.jsp");127 return;128 }129

130

131 }132

133 private void find(HttpServletRequest request, HttpServletResponse response) throwsUnsupportedEncodingException {134 //TODO 自动生成的方法存根

135 request.setCharacterEncoding("UTF-8");136

137 Course cour = newCourse();138 cour = JdbcMain.find(request.getParameter("class"));139 if (cour.getClassname() == null) {140 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "未找到相应信息", "操作错误", JOptionPane.ERROR_MESSAGE);141 response.setHeader("refresh", "0;url=admin/find.jsp");142 }else{143 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),"您要查找的是" + cour.getClassname() + cour.getTeacher() + cour.getPlace() , "操作成功", JOptionPane.INFORMATION_MESSAGE);144 response.setHeader("refresh", "0;url=admin/main.jsp");145 }146

147

148

149 }150

151 private void delete(HttpServletRequest request, HttpServletResponse response) throwsUnsupportedEncodingException {152 //TODO 自动生成的方法存根

153 request.setCharacterEncoding("UTF-8");154 String classname = request.getParameter("class");155 Course cour = newCourse();156 cour = null;157 cour =JdbcMain.find(classname);158 if(cour == null)159 {160 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "未找到此课程", "操作错误", JOptionPane.ERROR_MESSAGE);161 response.setHeader("refresh", "0;url=admin/delete.jsp");162 return;163 }164

165 int res=JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "请确认", "确认删除"+ cour.getClassname() + cour.getTeacher() +cour.getPlace(), JOptionPane.YES_NO_OPTION);166 if(res ==JOptionPane.YES_OPTION)167 {168 if(JdbcMain.delete(classname)==1)169 {170 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "操作成功", "成功删除" +cour.getClassname(), JOptionPane.INFORMATION_MESSAGE);171 response.setHeader("refresh", "0;url=admin/main.jsp");172 return;173 }else{174 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "操作错误", "请重新操作", JOptionPane.ERROR_MESSAGE);175 response.setHeader("refresh", "0;url=admin/delete.jsp");176 return;177 }178 }else{179 response.setHeader("refresh", "0;url=admin/main.jsp");180 return;181 }182

183

184

185

186 }187

188

189

190 private void add(HttpServletRequest request, HttpServletResponse response) throwsIOException, SQLException {191 //TODO 自动生成的方法存根

192 request.setCharacterEncoding("UTF-8");193 Course cour = newCourse();194

195 String classname = request.getParameter("class");196 String teacher = request.getParameter("teacher");197 String place = request.getParameter("place");198

199 cour.setClassname(classname);200 cour.setTeacher(teacher);201 cour.setPlace(place);202

203

204 Connection con =BaseConnection.getConnection();205 PreparedStatement ps = null;206 ResultSet rs = null;207 String sql = "select * from course";208

209 try{210 ps=con.prepareStatement(sql);211 rs=ps.executeQuery();212 while(rs.next()){213 if(classname.equals(rs.getString("classname")))214 {215

216 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "课程名称重复", "操作错误", JOptionPane.ERROR_MESSAGE);217 response.setHeader("refresh", "0;url=admin/add.jsp");218

219 return;220

221 }222

223

224 }225

226 } catch(SQLException e) {227 //TODO 自动生成的 catch 块

228 e.printStackTrace();229 }finally{230 try{231 if(ps!=null){232 ps.close();233 }if(con!=null){234 con.close();235 }if(rs!=null)236 {237 rs.close();238 }239 }catch(Exception e2){240 e2.printStackTrace();241 }242 }243

244

245 String teachers = "王建民刘立嘉刘丹王辉杨子光";246 String places = "一教二教三教基教";247 String pl = place.substring(0, 2);248

249 if(teachers.indexOf(teacher) != -1)250 {251 if(places.indexOf(pl) != -1)252 {253 int res=JOptionPane.showConfirmDialog(JOptionPane.getRootFrame(), "您要添加的是:" + classname + teacher + place , "是否继续", JOptionPane.YES_NO_OPTION);254 if(res==JOptionPane.YES_OPTION){255 if (JdbcMain.add(cour) == 1) {256

257 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "添加成功", "操作成功" +cour.getClassname(), JOptionPane.INFORMATION_MESSAGE);258 response.setHeader("refresh", "0;url=admin/main.jsp");259 return;260 }else

261 {262 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "请重新操作", "操作错误", JOptionPane.ERROR_MESSAGE);263 response.setHeader("refresh", "0;url=admin/add.jsp");264 }265 //点击“是”后执行这个代码块

266 }else{267 System.out.println("选择否后执行的代码"); //点击“否”后执行这个代码块

268 return;269 }270

271

272 }else

273 {274 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), "上课地点错误", "操作错误", JOptionPane.ERROR_MESSAGE);275 response.setHeader("refresh", "0;url=admin/add.jsp");276 return;277 }278 }else

279 {280 JOptionPane.showMessageDialog(JOptionPane.getRootFrame(),"没有这名教师" ,"操作错误",JOptionPane.ERROR_MESSAGE);281 response.setHeader("refresh", "0;url=admin/add.jsp");282 return;283 }284 }285

286 /**

287 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)288 */

289 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {290 //TODO Auto-generated method stub

291 doGet(request, response);292 }293

294 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值