前言
用增删改查写的简单版学生管理系统
运用了JavaScript,El表达式,c标签,mvc模式,三层架构,MySQL。
数据库辅助类
config.properties
#mysql
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/0614?useUnicode=true&characterEncoding=UTF-8&useSSL=false
user=root
pwd=123456
DBHelper .java
package com.cxy.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 提供了一组获得或关闭数据库对象的方法
*
*/
public class DBHelper {
private static String driver;
private static String url;
private static String user;
private static String password;
static {
// 静态块执行一次,加载 驱动一次
try {
InputStream is = DBHelper.class
.getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(is);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("pwd");
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 获得数据连接对象
*
* @return
*/
public static Connection getConnection() {
try {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void close(ResultSet rs) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Statement stmt) {
if (null != stmt) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn) {
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn, Statement stmt, ResultSet rs,PreparedStatement ps) {
close(rs);
close(stmt);
close(conn);
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static boolean isOracle() {
return "oracle.jdbc.driver.OracleDriver".equals(driver);
}
public static boolean isSQLServer() {
return "com.microsoft.sqlserver.jdbc.SQLServerDriver".equals(driver);
}
public static boolean isMysql() {
return "com.mysql.jdbc.Driver".equals(driver);
}
public static void main(String[] args) {
Connection conn = DBHelper.getConnection();
DBHelper.close(conn);
System.out.println("isOracle:" + isOracle());
System.out.println("isSQLServer:" + isSQLServer());
System.out.println("isMysql:" + isMysql());
System.out.println("数据库连接(关闭)成功");
}
}
实体类
学生类:Student .java
package com.cxy.entity;
/**学生实体类
* @author zjjt
*
*/
public class Student {
private int sid;
private String sname;
private Js js ;
private Class bj;
private String hid;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Js getJs() {
return js;
}
public void setJs(Js js) {
this.js = js;
}
public Class getBj() {
return bj;
}
public void setBj(Class bj) {
this.bj = bj;
}
public String getHid() {
return hid;
}
public void setHid(String hid) {
this.hid = hid;
}
public Student() {
// TODO Auto-generated constructor stub
}
public Student(int sid, String sname, Js js, Class bj, String hid) {
super();
this.sid = sid;
this.sname = sname;
this.js = js;
this.bj = bj;
this.hid = hid;
}
public Student(String sname, Js js, Class bj, String hid) {
this.sname = sname;
this.js = js;
this.bj = bj;
this.hid = hid;
}
public Student(String sname,String hid) {
this.sname = sname;
this.hid = hid;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", js=" + js + ", bj=" + bj + ", hid=" + hid + "]";
}
}
教师类:Js.java
package com.cxy.entity;
/**教师实体类
* @author zjjt
*
*/
public class Js {
private int tid ;
private String tname;
private int cid;
public int getTid() {
return tid;
}
public void setTid(int tid) {
this.tid = tid;
}
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public Js() {
// TODO Auto-generated constructor stub
}
public Js(int tid, String tname, int cid) {
super();
this.tid = tid;
this.tname = tname;
this.cid = cid;
}
@Override
public String toString() {
return "Js [tid=" + tid + ", tname=" + tname + ", cid=" + cid + "]";
}
}
班级类:Class.java
package com.cxy.entity;
/**班级实体类
* @author zjjt
*
*/
public class Class {
private int cid;
private String cname;
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public Class() {
// TODO Auto-generated constructor stub
}
public Class(int cid, String cname) {
super();
this.cid = cid;
this.cname = cname;
}
@Override
public String toString() {
return "Class [cid=" + cid + ", cname=" + cname + "]";
}
}
爱好类:Hobby.java
package com.cxy.entity;
/**爱好实体类
* @author zjjt
*
*/
public class Hobby {
private int hid;
private String hname;
public int getHid() {
return hid;
}
public void setHid(int hid) {
this.hid = hid;
}
public String getHname() {
return hname;
}
public void setHname(String hname) {
this.hname = hname;
}
public Hobby() {
// TODO Auto-generated constructor stub
}
public Hobby(int hid, String hname) {
super();
this.hid = hid;
this.hname = hname;
}
@Override
public String toString() {
return "Hobby [hid=" + hid + ", hname=" + hname + "]";
}
}
数据库访问层
学生接口类:StudentBiz .java
package com.cxy.biz;
import java.util.List;
import com.cxy.entity.Hobby;
import com.cxy.entity.Student;
public interface StudentBiz {
/**
* 模糊查询
* @param strt 教师编号
* @param strc 班级编号
* @param strh 爱好编号
* @return 集合
*/
List<Student> getAll(String strt,String strc,String strh,int pageindex,int pagecount);
/**
* 增加学生
* @param stu 学生实体
* @return 影响行数
*/
int addstu(Student stu);
/**
* 删除学生
* @param sid 学生编号
* @return 影响行数
*/
int deletestu(int sid);
/**
* 修改学生
* @param sid 学生编号
* @param stu 学生实体
* @return 影响行数
*/
int updatestu(int sid,Student stu);
/**
* 总数
* @return
*/
int getcount(String strt,String strc,String strh);
/**
* 学生单个查询
* @param sid 学生编号
* @return
*/
Student getdg(int sid);
}
学生方法类:StudentDao .java
package com.cxy.dao