云日记项目

一.创建数据库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二.连接数据库

1.创建db.properties

# 连接MYSQL数据库的配置文件 注:等号的前后不要写空格
# 驱动名
jdbcName=com.mysql.cj.jdbc.Driver
# 数据库连接 ( db_lezijie_note是数据库的名称)
dbUrl=jdbc:mysql://localhost:3306/lezijie_note?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
# 数据库的连接账号 (账号基本上都是root)
dbName=root
# 数据库的连接密码 (每个人的数据库密码可能不一致,需要修改)
dbPwd=root

2.工具类util下创建DBUtil

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class  DBUtil {
   

    // 得到配置文件对象
    private static Properties properties = new Properties();

    static {
   
        try {
   
            // 加载配置文件(输入流)
            InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
            // 通过load()方法将输入流的内容加载到配置文件对象中
            properties.load(in);
            // 通过配置文件对象的getProperty()方法获取驱动名,并加载驱动
            Class.forName(properties.getProperty("jdbcName"));
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接
     * @return
     */
    public static Connection getConnetion() {
   
        Connection connection = null;
        try {
   
            // 得到数据库连接的相关信息
            String dbUrl = properties.getProperty("dbUrl");
            String dbName = properties.getProperty("dbName");
            String dbPwd = properties.getProperty("dbPwd");
            // 得到数据库连接
            connection = DriverManager.getConnection(dbUrl, dbName, dbPwd);
        } catch (SQLException throwables) {
   
            throwables.printStackTrace();
        }

        return connection;
    }


    /**
     * 关闭资源
     * @param resultSet
     * @param preparedStatement
     * @param connection
     */
    public static void close(ResultSet resultSet,
                             PreparedStatement preparedStatement,
                             Connection connection) {
   

        try {
   
            // 判断资源对象如果不为空,则关闭
            if (resultSet != null) {
   
                resultSet.close();
            }
            if (preparedStatement != null) {
   
                preparedStatement.close();
            }
            if (connection != null) {
   
                connection.close();
            }
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

}

3.创建测试类连接数据库DBTest

import com.lezijie.note.util.DBUtil;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 乐字节:专注线上IT培训
 * 需要视频资料,请添加:lezijie007
 */
public class TestDB {
   

    // 使用日志工厂类,记录日志
    private Logger logger = LoggerFactory.getLogger(TestDB.class);

    /**
     * 单元测试方法
     *  1. 方法的返回值,建议使用void,一般没有返回值
     *  2. 参数列表,建议空参,一般是没有参数
     *  3. 方法上需要设置@Test注解
     *  4. 每个方法都能独立运行
     *
     *  判定结果:
     *      绿色:成功
     *      红色:失败
     */
    @Test
    public void testDB() {
   
        System.out.println(DBUtil.getConnetion());
        // 使用日志
        logger.info("获取数据库连接:" + DBUtil.getConnetion());
        logger.info("获取数据库连接:{}", DBUtil.getConnetion());
    }

}

三.创建配置文件

1.login.properties

### 设置###stdout,
log4j.rootLogger = all,D,E,stdout

### 输出信息到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{
   yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=D://logs/log.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{
   yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{
   yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]

四.登录页面

1.login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>R</title>
    <link href="statics/css/login.css" rel="stylesheet" type="text/css" />
    <script src="statics/js/jquery-1.11.3.js" type=text/javascript></script>
    <script src="statics/js/util.js" type=text/javascript></script>
    <script src="statics/js/config.js" type=text/javascript></script>
</head>
<body>
<!--head-->
<div id="head">
    <div class="top">
        <div class="fl yahei18">开启移动办公新时代!</div>
    </div>
</div>

<!--login box-->
<div class="wrapper">
    <div id="box">
        <div class="loginbar">用户登录</div>
        <div id="tabcon">
            <div class="box show">
                <form action="user" method="post" id="loginForm">
                    <%-- actionName表示用户行为,通过这个参数可以在UserServlet中判断用户当前想要操作的功能 --%>
                    <input type="hidden" name="actionName" value="login"/>
                    <input type="text" class="user yahei16" id="userName" name="userName" value="${resultInfo.result.uname}" /><br /><br />
                    <input type="password" class="pwd yahei16" id="userPwd" name="userPwd" value="${resultInfo.result.upwd}" /><br /><br />
             
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值