一个简单的javaweb项目模板

  • Controller包:表现层(视图)层。用来显示数据和接收用户数据
  • Service包:业务逻辑层,用来处理页面。先写接口,后写实现类
  • Dao包:持久层(数据访问层)。用来操作数据库

其中Dao包处于最底层,对于用户处于隐藏状态,对于开发者处于固定状态,其中包括Con_CloseSql类(数据库连接与关闭)、UserDao类(进行增删改查)与UserBeans(数据库数据)

Con_CloseSql类:

package dao;

import java.sql.*;

public class Con_CloseSql {

    final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    final String DB_URL = "jdbc:mysql://localhost:3306/表名?serverTimezone=GMT&characterEncoding=utf-8&useSSL=false";

    final String USER = "root";
    final String PASS = "密码";
    Statement stmt = null;

    public Connection getConnect()
    {
        Connection conn = null;

        try{
            Class.forName(JDBC_DRIVER);
            String url = DB_URL;
            conn = DriverManager.getConnection(url, USER, PASS);
            return conn;

        }catch(ClassNotFoundException nfe) {
            nfe.printStackTrace();
        }catch(SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    public static void closeConnection(Connection connection) {
        if(connection != null) {
            try{
                connection.close();
            }catch(SQLException sqle) {
                sqle.printStackTrace();
            }
        }
    }



}

UserDao类:

package dao;

import bean.UserBean;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;


public class UserDao {

  //保存用户数据
public void saveUser(UserBean userBean) throws SQLException { Connection connect = new Con_CloseSql().getConnect(); Statement statement = connect.createStatement(); String sql = "insert into 表名 values (?,?,?,?,?,?,?,?,?)"; try { PreparedStatement pr = connect.prepareStatement(sql); pr.setString(1, userBean.getHutype()); pr.setString(2, userBean.getHousetype()); pr.setString(3, userBean.getArea()); pr.setString(4, userBean.getNum()); pr.setString(5, userBean.getName()); pr.setString(6, userBean.getId()); pr.setString(7, userBean.getSex()); pr.setString(8, userBean.getNation()); pr.setString(9, userBean.getEducation()); pr.execute(); } catch (Exception e) { e.printStackTrace(); } finally { Con_CloseSql.closeConnection(connect); } }

  //通过name删除该行
public void deleteUser(UserBean userBean) { Connection connect = new Con_CloseSql().getConnect(); String sql = "delete from 表名 where name=? "; try { PreparedStatement pr = connect.prepareStatement(sql); pr.setString(1, userBean.getName()); pr.executeUpdate(); } catch (SQLException throwables) { throwables.printStackTrace(); } }

  //查询数据库中消息并从前端输出表格 public List<UserBean> query() { Connection connect = new Con_CloseSql().getConnect(); String sql = "select * from 表名"; List<UserBean> userBeans = new ArrayList<>(); try { try (PreparedStatement ps = connect.prepareStatement(sql)) { ResultSet resultSet = ps.executeQuery(sql); UserBean userBean = null; while (resultSet.next()) { String hutype = resultSet.getString("..."); String housetype = resultSet.getString("..."); String area = resultSet.getString("..."); //表头关键字 userBean = new UserBean(..., ..., ...,...);//表中元素 userBeans.add(userBean); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { Con_CloseSql.closeConnection(connect); } return userBeans; }

  //通过名字来展示信息
public UserBean queryByName(String name) { Connection connect = new Con_CloseSql().getConnect(); String sql = "select * from census where 户主姓名 = '"+name+"' "; UserBean userBean = null; //Object[] params = {name}; try { try (PreparedStatement ps = connect.prepareStatement(sql)) { ResultSet resultSet = ps.executeQuery(sql); if (resultSet.next()) { String hutype = resultSet.getString("户别"); String housetype = resultSet.getString("住房类型"); String area = resultSet.getString("本户现住房面积"); String num = resultSet.getString("本户现住房间数"); String name1 = resultSet.getString("户主姓名"); String id = resultSet.getString("身份证号码"); String sex = resultSet.getString("性别"); String nation = resultSet.getString("民族"); String education = resultSet.getString("受教育程度"); userBean = new UserBean(hutype, housetype, area, num, name1, id, sex, nation, education); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { Con_CloseSql.closeConnection(connect); } return userBean; }   //通过名字更新其他信息 public void upDate(UserBean user){ Connection connect = new Con_CloseSql().getConnect(); String sql="update census set 身份证号码=?,性别=?,民族=?,受教育程度=? where 户主姓名=?"; try { PreparedStatement ps = connect.prepareStatement(sql); ps.setString(1, user.getId()); ps.setString(2, user.getSex()); ps.setString(3,user.getNation()); ps.setString(4,user.getEducation()); ps.setString(5,user.getName()); int i= ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ Con_CloseSql.closeConnection(connect); } }

  //判断是否为该用户
public boolean isUser(String name) { Connection connect = new Con_CloseSql().getConnect(); try { String sql = "select * from census where 户主姓名 = '" + name + "'"; // 执行查询语句,并把结果集返回给ResultSet PreparedStatement pr = connect.prepareStatement(sql); ResultSet rs = pr.executeQuery(); if (rs.next()) return true; else return false; } catch (SQLException e) { // TODO Auto-generated catch block return false; } } public ArrayList<String> findDate() { Connection conn = new Con_CloseSql().getConnect(); String sql = "select * from census"; PreparedStatement pr; try { pr = (PreparedStatement)conn.prepareStatement(sql); ResultSet rs = pr.executeQuery(); int col = rs.getMetaData().getColumnCount(); ArrayList<String> m = new ArrayList<String>(); int n = 0; while (rs.next()) { for (int i = 1; i <= col; i++) { m.add(rs.getString(i) + "<br>"); System.out.print(rs.getString(i) + "\t"); if ((i == 2) && (rs.getString(i).length() < 8)) { m.add("<br>"); } } System.out.println(""); } return m; } catch (SQLException e) { e.printStackTrace(); } return null; } }

Service包主要包括各种servlet

XXXServlet类:

package service;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class XXXServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;utf-8");

        
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

pom.xml常用配置为:

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.3.3</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.13</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/taglibs/standard -->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

web.xml为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  
</web-app>

jsp基础配置为:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>


</body>
</html>

 

posted @ 2021-11-16 19:28  又一岁荣枯  阅读(320)  评论(0编辑  收藏  举报