本次实验要求用javaweb项目完成数据库的增删改查四个内容。那么在这里我将从头到尾的把这道题是如何完成的重点知识点串联一遍。主任说可能以后会有小学弟小学妹们走我们的老路。所以我会尽量的写的详细一些。
1.实验前的准备工作:相关的jar包配置好了jdbc,servlet,standard,jstl这些个jar包都要配置好了。(当然,不用的话就不用配置了)
2.创建好java项目后开始第一部分的工作,javaresource的编写。在这里面我们会用到五个包,五个包里各有一个类:分别是dao,entity,service,servlet,util。当然我这里只阐述我自己的解题方式,你们做的时候想起什么名字无所谓。
首先解释的是entity,因为它最简单。它里面的类我们称之为实体类。也就是里面装的是题目中要求的所有元素:比如这道题目要涉及的要素:老师,地点,课程名。
package com.hjf.entity; public class Course { private int id; private String name; private String teacher; private String classroom; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTeacher() { return teacher; } public void setTeacher(String teacher) { this.teacher = teacher; } public String getClassroom() { return classroom; } public void setClassroom(String classroom) { this.classroom = classroom; } public Course() {} public Course(int id, String name, String teacher, String classroom) { this.id = id; this.name = name; this.teacher = teacher; this.classroom = classroom; } public Course(String name, String teacher, String classroom) { this.name = name; this.teacher = teacher; this.classroom = classroom; } }
因为很简单,所以我就没有写注释。就是很简单的定义以及get和set,直接从source可以加入。注意两点,一个是id,id是用以记录的。第二个是构造方法,要写上,这是一个好习惯一般最好是写三个如上。
ok,接下来开始讲解第二个包util,即数据库的链接包。这个包还是很重要的,而且优点很明显,都是死的。(我不清你们用的是什么软件,我们用的是Navicat)
package com.hjf.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 数据库连接工具 * @author Hu * */ public class DBUtil { public static String db_url = "jdbc:mysql://localhost:3306/course?useSSL=false";//1 public static String db_user = "root"; public static String db_pass = "123456"; public static Connection getConn () { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver");// conn = DriverManager.getConnection(db_url, db_user, db_pass); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 关闭连接 * @param state * @param conn */ public static void close (Statement state, Connection conn) { if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close (ResultSet rs, Statement state, Connection conn) {//2 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
如果你们需要连接数据库,又没有可以用的上的代码的话,直接用这份就行。
第三个要说的是dao包,dao包中包含对数据库的增删改查。其实是对数据的直接处理。某种程度上可以说dao包决定了
在这里不多解释了这段直接上代码,我会在注释中把问题说清楚。