数据库连接

一.项目需求

课程管理是各大院校的管理工作中尤为重视的一项工作,它一直以来是学校管
理的一项重要的衡量指标。石家庄铁道大学为了提高工作效率,实现信息化管理,
要求开发课程管理系统。——设计添加新课程界面。//在后台数据库中建立相应的表结构存储课程信息。//实现新课程添加的功能。 要求限定教师为系中的5位老师。//要求限制上课地点开头为“一教、二教、三教、基教”中的一种。//实现数据存储功能。

二.设计思想

需要建立一个课程的类,一个连接数据库的类,一个接口,一个异常框,一个前端界面和一个后端页面。

所以首先创建课程类。包含三个参数:a.课程名称  b.教师名称  c.上课地点。(自动构建get和set函数)

其次构建一个连接数据库的类,用来连接数据库

创建一个接口,其中有一个静态方法,传入一个课程类的对象。能够实现将该对象传入数据库//创建一个异常框,用来在课程出错时,弹出异常信息。//创建一个前段界面,显示界面信息

同时创建一个后端页面,接受来自前端的消息,并且对其进行判断。如果在限定条件内,则添加到数据库。否则,抛出异常,跳转页面

三.源程序代码

(1)java

1.创建课程类

package com.jaovo.msg.model;

public class HaveClass 
{
    private String  teachername;
    private String  place;
    private String  classname;
    
    public String getTeachername() {
        return teachername;
    }
    public void setTeachername(String teachername) {
        this.teachername = teachername;
    }
    public String getPlace() {
        return place;
    }
    public void setPlace(String place) {
        this.place = place;
    }
    public String getClassname() {
        return classname;
    }
    public void setClassname(String classname) {
        this.classname = classname;
    }

}

  2.构建一个连接数据库的类,用来连接数据库

package com.jaovo.msg.Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil 
{
    
    public  static  Connection getConnection() {
        try {
            
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String user = "sa";
        String password = "jisuan@10Q";
        String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=OnClass";
        Connection connection = null;
        try {
            
             connection = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return connection;
    }
    
    
    public static void close(Connection connection ) {
        try {
            if (connection != null) {
                connection.close();
            }
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static void close(PreparedStatement preparedStatement ) {
        try {
            if (preparedStatement != null) {
                preparedStatement.close();
            }
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static void close(ResultSet resultSet ) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}

  3.创建一个类,用来实现添加到数据库中

package com.jaovo.msg.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.model.HaveClass;


public class ClassDaoImpl {
    
    public void add(HaveClass claz) 
    {
        //获得链接对象
        Connection connection = DBUtil.getConnection();
        
        //准备sql语句
        String sql = "insert into t_class(teachername,classname,place) values(?,?,?)";
        PreparedStatement preparedStatement = null;
        try {
        //创建语句传输对象
        preparedStatement = connection.prepareStatement(sql);
        
        preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1, claz.getTeachername());
        preparedStatement.setString(2, claz.getClassname());
        preparedStatement.setString(3, claz.getPlace());
        preparedStatement.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            //关闭资源
            
            DBUtil.close(preparedStatement);
            DBUtil.close(connection);
        }
        
    }

}

  4.使用jsp文件,创建前端界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>课程添加页面</title>
</head>
<body>
    <form action="add.jsp" method="get">
        <table align="center" border="1" width="500">
            <tr>
                <td>课程名称 : </td>
                <td>
                    <input type="text" name="classname" />
                </td>
            </tr>
                <tr>
                <td>任课教师:</td>
                <td>
                    <input type="text" name="teachername" />
                </td>
            </tr>
            <tr>
                <td>上课地点:</td>
                <td>
                    <input type="text" name="place" />
                </td>
            </tr>
            <tr align="center">
                <td colspan="2">
                    <input type="submit" value="提交" />
                    <input type="reset" value="重置" />
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

  5.创建后端界面,完成对数值的校验

<%@page import="com.jaovo.msg.Util.ClassException"%>
<%@page import="com.jaovo.msg.dao.ClassDaoImpl"%>
<%@page import="com.jaovo.msg.model.HaveClass"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
    //接收客户端传递过来的参数
    
    String teachername = request.getParameter("teachername");
    String classname = request.getParameter("classname");
    String place = request.getParameter("place");
    try{
    if(!teachername.trim().equals("王建民")&&!teachername.trim().equals("刘立嘉")&&!teachername.trim().equals("刘丹")&&!teachername.trim().equals("王辉")&&!teachername.trim().equals("杨子光"))
    {
        throw new ClassException("不能输入规定之外的老师名称");
    }
    else if(!place.trim().startsWith("基教")&&!place.trim().startsWith("一教")&&!place.trim().startsWith("二教")&&!place.trim().startsWith("三教"))
    {
        throw new ClassException("不能输入规定之外的地点名称!");
    }
    else
    {
        HaveClass haveclass = new HaveClass();
        haveclass.setTeachername(teachername);
        haveclass.setClassname(classname);
        haveclass.setPlace(place);
        ClassDaoImpl classDao = new ClassDaoImpl();
        classDao.add(haveclass);
    }
    
    }catch(ClassException e){
        
%>
    <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2>
<%
    }
    
    
    
%>

    


</html>

  

四.运行结果截图

注:代码基本源自网页,以及各位学长的帮助,讲真的我自己做不出来,我现在的状态只能连接成功数据库,对于网页前端和后端,JSP的用处我会在下一个博客里写一下我的感觉。一定会细心的。

原文地址:https://www.cnblogs.com/kmxbf2292/p/10092925.html