/ 知识库     / 试卷库

课程管理后端部分设计与开发

使用前后端分离的思想,设计与开发课程管理模块。

1、数据表设计

CREATE TABLE `course` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `code` VARCHAR(50) DEFAULT NULL,
  `name` VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8

2、实验数据

insert  into `course`(`id`,`code`,`name`) values (1,'01','语文');
insert  into `course`(`id`,`code`,`name`) values (2,'02','数学');
insert  into `course`(`id`,`code`,`name`) values (3,'03','英语');
insert  into `course`(`id`,`code`,`name`) values (4,'04','物理');
insert  into `course`(`id`,`code`,`name`) values (5,'05','化学');

3、Java bean

public class Course {
	private int id;
	private String code;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

4、Servlet

public class CourseServlet extends HttpServlet{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Connection con=null;
	
	public void init(){
		try {
			super.init();
			Class.forName("com.mysql.jdbc.Driver"); 
			String url="jdbc:mysql://localhost:3306/my_db?useUnicode=true";
			url+="&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"; 
			con=DriverManager.getConnection(url,"root","");
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			System.out.println(e);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println(e);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println(e);
		}
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		PreparedStatement pstmt=null; 
		ResultSet rs=null; 
		try {
			pstmt=con.prepareStatement("select * from course");
			rs=pstmt.executeQuery();
			List<Course> lst=new ArrayList<Course>();
			while(rs.next()){
				Course c=new Course();
				c.setId(rs.getInt("id"));
				c.setCode(rs.getString("code"));
				c.setName(rs.getString("name"));
				lst.add(c);
			}
			Map<String, Object> dataMap = new HashMap<String, Object>();
			dataMap.put("lst", lst);
			JSONObject jsonObject = JSONObject.fromObject(dataMap);
			String funString = request.getParameter("callback");
			response.setCharacterEncoding("UTF-8");
			PrintWriter writer = response.getWriter();
			writer.write(funString+"("+jsonObject+")");
			writer.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public void destroy(){
		if(con!=null)
			try {
				con.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		super.destroy();
	}
}

5、前端js

function courseList(){
    $('#subject').html('课程管理');
    var htm='<div class="panel panel-default">';
    htm+='<div class="panel-heading">';
    htm+='<button class="btn btn-default fa fa-plus"> 添加</button>';
    htm+='</div>';
    htm+='<div class="panel-body">';
    htm+='<div class="table-responsive">';
    htm+='<table class="table table-striped table-bordered table-hover">';
    htm+='<thead>';
    htm+='<tr>';
    htm+='<th width="10%">#</th>';
    htm+='<th width="35%">课程编码</th>';
    htm+='<th width="35%">课程名称</th>';
    htm+='<th width="20%">操作</th>';
    htm+='</tr>';
    htm+='</thead>';
    htm+='<tbody id="courses"></tbody>';
    htm+='</tbody>';
    htm+='</table>';
    htm+='</div>';
    htm+='</div>';
    htm+='</div>';
    $.ajax({
        type:'GET',
        async:true,
        url:'/course',
        dataType:'jsonp',
        beforeSend:function(){
            $('#content').html(htm);
        },
        success:function(result){
            var lst=result.lst;
            for(var i=0;i<lst.length;i++){
                var tr='<tr>';
                tr+='<td>'+lst[i].id+'</td>';
                tr+='<td>'+lst[i].code+'</td>';
                tr+='<td>'+lst[i].name+'</td>';
                tr+='<td><button class="btn btn-default fa fa-edit"> 编辑</button>';
                tr+=' <button class="btn btn-default fa fa-times"> 删除</button></td>';
                tr+='</tr>';
                $('#courses').append(tr);
            }
        },
    });
}