四、数据库创建以及信息录入的数据库连接

标签: java mysql servlet jdbc
39人阅读 评论(0) 收藏 举报
分类:

数据库创建的话,我使用数据库管理工具Navicat for MySQL

数据库需要两张表,一张是学生信息表,一张是工时信息表

我的数据库名字为project,里面有两张表


一张是stumessage


主键是学生学号,也就是num

一张是stuworktime


-------------------------------------

创建文件:

创建一个带java文件的包:

Java Resources-src-右键src-new-Package


在已有的包内创建文件(不管用途是什么都是创建一个Class,也就是java文件)

右键所选中的包-new-Class

写文件名,然后Finish


-------------------------------------------------------

下面是学生信息录入的数据库连接

需要的文件:

JSP页面:AddMessage.jsp

Bean类:AddMessageBean.java  

Dao文件:AddMessageDao.java

Servlet文件:AddMessageServlet.java

Servlet配置:web.xml

-------------------------------------------

先要写一个Bean类存放提交的表单的信息

AddMessageBean.java

package bean;
public class AddMessageBean {  
    
    /** 
     * 属性和数据库中的字段相对应 
     */  
        
    private String name;  //对应JSP文件里面的每一栏
    
    private String num;  
    
    private String sex;  
    
    private String college;  
    
    private String year;
    
    private String major;
    
    private String poor;  
    
    public AddMessageBean() {  //构造函数
          
    }  
  
    public String getNum() {  //将num的值返回
        return num;  
    }  
  
    public void setNum(String num) {  //设置num的值
        this.num = num;  
    }  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
    public String getSex() {  
        return sex;  
    }  
  
    public void setSex(String sex) {  
        this.sex = sex;  
    }  
    
    public String getCollege() {  
        return college;  
    }  
  
    public void setCollege(String college) {  
        this.college = college;  
    } 
    
    public String getYear() {  
        return year;  
    }  
  
    public void setYear(String year) {  
        this.year = year;  
    }  
    
    public String getMajor() {  
        return major;  
    }  
  
    public void setMajor(String major) {  
        this.major = major;  
    }  
    public String getPoor() {  
        return poor;  
    }  
  
    public void setPoor(String poor) {  
        this.poor = poor;  
    } 
    
}

AddMessageServlet.java

package servlet;

import java.io.*;
import java.util.List;  

import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import bean.AddMessageBean;  //导入Bean文件
import dao.AddMessageDao;  //导入Dao文件
  
public class AddMessageServlet extends HttpServlet{  
  
    private static final long serialVersionUID = 1L;  
  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        this.doPost(req, resp);  //如果是Get方式,则使用doPost方法
    }  
      
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)  //与form表单的method提交方法有关,我的method为post方法
            throws ServletException, IOException {  
        //设置编码,防止请求乱码  
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        PrintWriter out = resp.getWriter();//我不知道是干什么的,貌似也没用吧
        //获取参数
        String Name=req.getParameter("name");//将提交的表单里的name="name"的文本框的值给Name
        String Year=req.getParameter("year");
        String Sex=req.getParameter("sex");
        String ID=req.getParameter("id");
        String Insti=req.getParameter("institute");
        String Pro=req.getParameter("professional");
        String Poor=req.getParameter("level"); 
        AddMessageBean bean =new AddMessageBean();  //创建一个Bean类,将值都赋给Bean类里面对应的值
        bean.setName(Name);  //将Name用setName函数,将bean的name值设为Name的值
        bean.setYear(Year);
        if(Sex == "male")
        	bean.setSex("男");
        else
        	bean.setSex("女");
        bean.setNum(ID);  
        bean.setCollege(Insti);  
        bean.setMajor(Pro);
        if(Poor == "poor")
            bean.setPoor("贫困");
        else
            bean.setPoor("特困");
        AddMessageDao dao =new AddMessageDao();  //新建一个Dao类
        dao.addClassInfo(bean); //调用addClassInfo方法,将bean作为参数传入   
        req.getRequestDispatcher("/AddMessage.jsp").forward(req, resp); //完成之后要返回的页面,我返回原来页面 
    }  
}  

AddMessageDao.java

package dao;
import java.sql.Connection;  
import java.io.*;
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Statement;  
import java.util.ArrayList;  
import java.util.List;
import javax.servlet.annotation.WebServlet;

import bean.AddMessageBean; 

public class AddMessageDao {  
	static {  
        // 加载数据库驱动  ,也就是jdbc
        try {  
            Class.forName("com.mysql.jdbc.Driver");
        } 
        catch (ClassNotFoundException e) {
            e.printStackTrace();  
        }  
    }  
  
    public void addClassInfo(AddMessageBean Bean) {  
        Connection conn = null;  
        Statement stmt = null;  
        try {  
            // 获取数据库连接,三个参数为("数据库名字","用户名","密码")
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","root");  
            // 写一条SQL的插入语句,按照表的顺序,依次调用对应的get方法,得到值
            String sql = "insert into stumessage() values ('"+Bean.getNum()+"','"+ Bean.getName() +"','"+ Bean.getSex() +"','"
                    + Bean.getCollege() +"','"+ Bean.getYear()+"','"+ Bean.getMajor() +"','"+ Bean.getPoor()+"')";
            // 创建SQL执行对象  
            stmt = conn.createStatement();  
            // 执行sql语句  
            stmt.executeUpdate(sql);
        } catch (SQLException e) {  //抓取异常
            e.printStackTrace();  
        } finally {  				//最后要关掉数据库和statement对象
            if (conn != null) {  
                try {  
                    conn.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (stmt != null) {  
                try {  
                    stmt.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }}

Servlet配置,如果不配置,前端和后端就连不起来

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>AddMessage</servlet-name>
    <servlet-class>servlet.AddMessageServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AddMessage</servlet-name>
    <url-pattern>/AddMessage</url-pattern>
  </servlet-mapping>
</web-app>

配置需要一个<servlet>和一个<servlet-mapping>

<servlet>中servlet-name与<servlet-mapping>中的servlet-name需要一致

servlet-class:需要执行的servlet的位置,也就是servlet包的AddMessageServlet

url-pattern:地址映射。JSP文件中的form的action的值就是这个的值,必须要有/

----------------------------------------------------------

完成后就可以录入学生信息了。


表中就看到了这条数据库信息


-------------------------------------------------------------------------------------------------------------------------

同理,工时录入操作一样,我就直接贴代码了。

需要的文件:

JSP页面:AddWorkTime.jsp

Bean类:AddWorkTime.java  

Dao文件:AddWorkTimeDao.java

Servlet文件:AddWorkTimeServlet.java

Servlet配置:web.xml 直接在上一个的基础上添加一个<servlet>,<servlet-mapping>写对应的值就可以了

---------------------------------------------------------------------------------------

AddWorkTime.java

package bean;

public class AddWorkTime {
    private String id;  
    
    private String activity;  
    
    private String worktime;  
    
    private String workdate;  
    
    public AddWorkTime() {  
          
    }  
  
    public String getID() {  
        return id;  
    }  
  
    public void setID(String id) {  
        this.id = id;  
    }  
  
    public String getAct() {  
        return activity;  
    }  
  
    public void setAct(String activity) {  
        this.activity = activity;  
    }  
    
    public String getTime() {  
        return worktime;  
    }  
  
    public void setTime(String time) {  
        this.worktime = time;  
    }  
    
    public String getDate() {  
        return workdate;  
    }  
  
    public void setDate(String date) {  
        this.workdate = date;  
    } 
    
}

AddWorkTimeDao.java

package dao;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.annotation.WebServlet;
import bean.AddWorkTime;

public class AddWorkTimeDao {
	static {  
        // 加载数据库驱动  
        try {  
            Class.forName("com.mysql.jdbc.Driver");      
        } catch (ClassNotFoundException e) { 
            e.printStackTrace();  
        }  
    }
	public void Addworktime(AddWorkTime bean) {
		Connection conn = null;  
        Statement stmt = null;  
        try {  
            // 获取数据库连接  
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","root");  
            // 整理一条SQL语句
            String sql = "insert into stuworktime(number,workname,worktime,datetime) values ('"+bean.getID()+"','"+ bean.getAct() +"','"
            + bean.getTime() +"','"+bean.getDate()+"')";
            // 创建SQL执行对象  
            stmt=conn.createStatement();
            stmt.executeUpdate(sql);
        } catch (SQLException e) {  
            e.printStackTrace();  
        } 
        finally {  
            if (conn != null) {  
                try {  
                    conn.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (stmt != null) {  
                try {  
                    stmt.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
	}
}

AddWorkTimeServlet.java

package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.AddWorkTime;
import dao.AddWorkTimeDao;
public class AddWorkTimeServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;  
	  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        this.doPost(req, resp);  
    }  
      
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        //设置编码,防止请求乱码  
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        PrintWriter out = resp.getWriter();
        //获取参数
        String ID=req.getParameter("id");
        String activity=req.getParameter("activity");
        String time=req.getParameter("worktime");
        String date=req.getParameter("workdate");
       // out.println("get success");
        //创建AddWorkTimeBean对象保存信息  
        AddWorkTime bean =new AddWorkTime();  
        bean.setAct(activity);  
        bean.setTime(time);  
        bean.setID(ID);
        bean.setDate(date);
        //创建数据库操作对象 
        AddWorkTimeDao dao =new AddWorkTimeDao(); 
        //新增班级信息到数据库  
        dao.Addworktime(bean);
        //转发请求  
        req.getRequestDispatcher("/AddWorkTime.jsp").forward(req, resp);  
    } 
}

web.xml更新

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>AddMessage</servlet-name>
    <servlet-class>servlet.AddMessageServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AddMessage</servlet-name>
    <url-pattern>/AddMessage</url-pattern>
  </servlet-mapping>
    <servlet>
    <servlet-name>AddWorkTime</servlet-name>
    <servlet-class>servlet.AddWorkTimeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AddWorkTime</servlet-name>
    <url-pattern>/AddWorkTime</url-pattern>
  </servlet-mapping>
   <servlet>
    <servlet-name>TimeManage</servlet-name>
    <servlet-class>servlet.TimeManageServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TimeManage</servlet-name>
    <url-pattern>/TimeManage</url-pattern>
  </servlet-mapping>
</web-app>
然后工时录入也就完成了
查看评论

数据库的最简单实现

所有应用软件之中,数据库可能是最复杂的。MySQL的手册有3000多页,PostgreSQL的手册有2000多页,Oracle的手册更是比它们相加还要厚。但是,自己写一个最简单的数据库,做起来并不难。...
  • KnightOnHourse
  • KnightOnHourse
  • 2018-04-14 09:06:50
  • 101

终端SqlCE配置

终端SqlCE配置:安装终端与PC的同步程序MicrosoftActiveSync,找到VS2005安装目录Drogram FilesMicrosoft Visual Studio8/SmartDev...
  • feixiang_01171
  • feixiang_01171
  • 2013-10-12 16:07:34
  • 639

Spring配置三种数据源及从属性文件中读取DB连接四要素

  • 2017年02月14日 21:09
  • 167KB
  • 下载

数据库 各类连接方式区别

数据库 各类连接方式区别
  • kydkong
  • kydkong
  • 2015-11-30 21:32:52
  • 657

第67篇 PHP MySQL连接创建数据库及表

关键词:PHP MySQL简介, PHP连接mysql,php创建mysql数据库,php创建mysql表 一、PHP MySQL 1.1  PHP MySQL简介 语句 setnames u...
  • SanBaDao
  • SanBaDao
  • 2017-02-05 07:50:55
  • 1459

C#连接数据库测试

C#窗体控件连接SQL Server测试 最近学ASP跟网站之类的需要测试本地的SQL连接有没有用,索性写了一个做测试,后面在同学 的电脑上配置环境的时候老是出问题,就不停的改进,一不小心就写到第三版...
  • cnbeta1993
  • cnbeta1993
  • 2015-11-24 13:13:29
  • 646

为什么数据库连接很消耗资源

开发应用程序久了,总想刨根问底,尤其对一些有公共答案的问题。大家都能解释,但是追根究底,都解释不清。凡是都有为什么,而且用数字说明问题是最直观的。 本文主要想探究一下连接数据库的细节,尤其是在Web应...
  • lmy86263
  • lmy86263
  • 2017-07-26 21:19:19
  • 1474

jdbc的练习:建立一个连接数据库的类

import java.sql.*; public class DatabaseConnection {     String driver="com.mysql.jdbc.Dri...
  • hongzhangzhao
  • hongzhangzhao
  • 2017-06-02 14:29:29
  • 502

kettle新建数据库连接

1.先新建转化。 2.新建一个输入->表输入 3.创建一个表输入 、 4.点击上面的新建创建一个数据库连接。...
  • baidu_15113429
  • baidu_15113429
  • 2017-05-22 17:18:30
  • 754

ireport 连接数据库找不到驱动的问题

在ireport中,在最上面的菜单中,点击 窗口->服务 ,在打开的界面中,在 数据库 这3个字上 右键单击,新建驱动程序即可 ...
  • elia1208
  • elia1208
  • 2011-01-28 11:25:00
  • 1033
    个人资料
    等级:
    访问量: 195
    积分: 101
    排名: 126万+
    文章存档