day109-smbms准备工作

发布时间 2023-05-28 17:31:24作者: 北海之上

smbms项目部署环境

创建项目

 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion><groupId>com.gu</groupId>
   <artifactId>smbms</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>war</packaging><name>smbms Maven Webapp</name>
   <!-- FIXME change it to the project's website -->
   <url>http://www.example.com</url><properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <maven.compiler.source>1.7</maven.compiler.source>
     <maven.compiler.target>1.7</maven.compiler.target>
   </properties><dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.11</version>
       <scope>test</scope>
     </dependency><dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>4.0.1</version>
     </dependency><dependency>
       <groupId>javax.servlet.jsp</groupId>
       <artifactId>jsp-api</artifactId>
       <version>2.2</version>
     </dependency><dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.28</version>
     </dependency><dependency>
       <groupId>javax.servlet.jsp.jstl</groupId>
       <artifactId>jstl-api</artifactId>
       <version>1.2</version>
     </dependency><dependency>
       <groupId>taglibs</groupId>
       <artifactId>standard</artifactId>
       <version>1.1.2</version>
     </dependency>
   </dependencies></project>

 

配置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">
     
 <!--    字符编码过滤器-->
     <filter>
         <filter-name>CharacterEncodingFilter</filter-name>
         <filter-class>com.gu.filter.CharacterEncodingFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>CharacterEncodingFilter</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>
 </web-app>

 

链接数据库

 
driver=com.mysql.jdbc.Driver
 url=jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
 username=root
 password=123456

 

创建数据库公共类

 package com.gu.dao;
 ​
 import java.io.IOException;
 import java.io.InputStream;
 import java.sql.*;
 import java.util.Properties;
 ​
 //操作数据库的公共类
 public class BaseDao {
 ​
     private static String driver;
     private static String url;
     private static String username;
     private static String password;
 ​
     //静态代码块,类加载的时候就初始化了
     static {
         //通过类加载器读取相应的资源
         InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");
         Properties properties = new Properties();
         try {
             properties.load(is);
         } catch (IOException e) {
             e.printStackTrace();
         }
 ​
         driver = properties.getProperty("driver");
         url = properties.getProperty("url");
         username = properties.getProperty("username");
         password = properties.getProperty("password");
     }
 ​
     //获取数据库链接
     public static Connection getConnection(){
         Connection connection = null;
         try {
             Class.forName(driver);
             connection = DriverManager.getConnection(url,username,password);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
 ​
         return connection;
     }
 ​
     //编写查询公共类
     public static ResultSet execute(Connection connection, String sql,Object[] params,ResultSet resultSet,PreparedStatement preparedStatement) throws SQLException {
         preparedStatement = connection.prepareStatement(sql);
 ​
         for (int i = 0; i < params.length; i++) {
             preparedStatement.setObject(i+1,params[i]);
             
         }
         resultSet = preparedStatement.executeQuery();
         return resultSet;
 ​
     }
 ​
     //编写增删改公共方法
     public static int execute(Connection connection, String sql,Object[] params,PreparedStatement preparedStatement) throws SQLException {
         preparedStatement = connection.prepareStatement(sql);
 ​
         for (int i = 0; i < params.length; i++) {
             preparedStatement.setObject(i+1,params[i]);
 ​
         }
         int updateRows = preparedStatement.executeUpdate();
         return updateRows;
 ​
     }
 ​
     //释放资源
     public static boolean closeResource(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet){
         boolean flag = true;
         if (resultSet != null){
             try {
                 resultSet.close();
                 resultSet = null;
             } catch (SQLException e) {
                 e.printStackTrace();
                 flag = false;
             }
         }
 ​
         if (preparedStatement != null){
             try {
                 preparedStatement.close();
                 preparedStatement = null;
             } catch (SQLException e) {
                 e.printStackTrace();
                 flag = false;
             }
         }
 ​
         if (connection != null){
             try {
                 connection.close();
                 connection = null;
             } catch (SQLException e) {
                 e.printStackTrace();
                 flag = false;
             }
         }
         return flag;
     }
 }

 

创建实体类(以一个为例)

 
package com.gu.pojo;
 ​
 import java.util.Date;
 ​
 public class User {
    private Integer id; //id 
    private String userCode; //用户编码
    private String userName; //用户名称
    private String userPassword; //用户密码
    private Integer gender;  //性别
    private Date birthday;  //出生日期
    private String phone;   //电话
    private String address; //地址
    private Integer userRole;    //用户角色
    private Integer createdBy;   //创建者
    private Date creationDate; //创建时间
    private Integer modifyBy;     //更新者
    private Date modifyDate;   //更新时间
    
    private Integer age;//年龄
    
    private String userRoleName;    //用户角色名称
    
    
    public String getUserRoleName() {
       return userRoleName;
    }
    public void setUserRoleName(String userRoleName) {
       this.userRoleName = userRoleName;
    }
    public Integer getAge() {
       /*long time = System.currentTimeMillis()-birthday.getTime();
       Integer age = Long.valueOf(time/365/24/60/60/1000).IntegerValue();*/
       Date date = new Date();
       Integer age = date.getYear()-birthday.getYear();
       return age;
    }
    public Integer getId() {
       return id;
    }
    public void setId(Integer id) {
       this.id = id;
    }
    public String getUserCode() {
       return userCode;
    }
    public void setUserCode(String userCode) {
       this.userCode = userCode;
    }
    public String getUserName() {
       return userName;
    }
    public void setUserName(String userName) {
       this.userName = userName;
    }
    public String getUserPassword() {
       return userPassword;
    }
    public void setUserPassword(String userPassword) {
       this.userPassword = userPassword;
    }
    public Integer getGender() {
       return gender;
    }
    public void setGender(Integer gender) {
       this.gender = gender;
    }
    public Date getBirthday() {
       return birthday;
    }
    public void setBirthday(Date birthday) {
       this.birthday = birthday;
    }
    public String getPhone() {
       return phone;
    }
    public void setPhone(String phone) {
       this.phone = phone;
    }
    public String getAddress() {
       return address;
    }
    public void setAddress(String address) {
       this.address = address;
    }
    public Integer getUserRole() {
       return userRole;
    }
    public void setUserRole(Integer userRole) {
       this.userRole = userRole;
    }
    public Integer getCreatedBy() {
       return createdBy;
    }
    public void setCreatedBy(Integer createdBy) {
       this.createdBy = createdBy;
    }
    public Date getCreationDate() {
       return creationDate;
    }
    public void setCreationDate(Date creationDate) {
       this.creationDate = creationDate;
    }
    public Integer getModifyBy() {
       return modifyBy;
    }
    public void setModifyBy(Integer modifyBy) {
       this.modifyBy = modifyBy;
    }
    public Date getModifyDate() {
       return modifyDate;
    }
    public void setModifyDate(Date modifyDate) {
       this.modifyDate = modifyDate;
    }
 }

 

设置字符监听器

 package com.gu.filter;
 ​
 import javax.servlet.*;
 import java.io.IOException;
 ​
 public class CharacterEncodingFilter implements Filter {
 ​
     @Override
     public void init(FilterConfig filterConfig) throws ServletException {
 ​
     }
 ​
     @Override
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
         servletRequest.setCharacterEncoding("UTF-8");
         servletResponse.setCharacterEncoding("UTF-8");
         filterChain.doFilter(servletRequest, servletResponse);
     }
 ​
     @Override
     public void destroy() {
 ​
     }
 }

 

over