前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发环境IDEA + Maven + MySQL + Jdk1.8 + Tomcat

开发环境IDEA + Maven + MySQL + Jdk1.8 + Tomcat

作者头像
用户3519280
发布2023-07-07 19:38:06
1880
发布2023-07-07 19:38:06
举报
文章被收录于专栏:c++ 学习分享c++ 学习分享

开发环境 IDEA + Maven + MySQL + Jdk1.8 + Tomcat

修改配置 在 pomx.xml 配置文件中,修改配置、添加依赖与插件

代码语言:javascript
复制
<properties>
 ?<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 ?<maven.compiler.source>1.8</maven.compiler.source>
 ?<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
 ?<!-- junit 测试 -->
 ?<dependency>
 ? ?<groupId>junit</groupId>
 ? ?<artifactId>junit</artifactId>
 ? ?<version>4.12</version>
 ? ?<scope>test</scope>
</dependency>
 ?<!-- web servlet -->
 ?<dependency>
 ? ?<groupId>javax.servlet</groupId>
 ? ?<artifactId>javax.servlet-api</artifactId>
 ? ?<version>4.0.1</version>
 ? ?<scope>provided</scope>
 ?</dependency>
 ?<!-- 日志打印相关的jar -->
 ?<dependency>
 ? ?<groupId>org.slf4j</groupId>
 ? ?<artifactId>slf4j-log4j12</artifactId>
 ? ?<version>1.7.2</version>
 ?</dependency>
 ?<dependency>
 ? ?<groupId>org.slf4j</groupId>
 ? ?<artifactId>slf4j-api</artifactId>
 ? ?<version>1.7.2</version>
 ?</dependency>
 ?<!-- mysql 驱动包 -->
 ?<dependency>
 ? ?<groupId>mysql</groupId>
 ? ?<artifactId>mysql-connector-java</artifactId>
 ? ?<version>8.0.19</version>
 ?</dependency>
 ?<!-- json 依赖 -->
 ?<dependency>
 ? ?<groupId>com.alibaba</groupId>
 ? ?<artifactId>fastjson</artifactId>
 ? ?<version>1.2.62</version>
 ?</dependency>
 ?<!-- hutool工具集 -->
 ?<dependency>
 ? ?<groupId>cn.hutool</groupId>
 ? ?<artifactId>hutool-all</artifactId>
 ? ?<version>5.4.7</version>
 ?</dependency>
 ?<!-- commons-io 依赖 -->
 ?<dependency>
 ? ?<groupId>commons-io</groupId>
 ? ?<artifactId>commons-io</artifactId>
 ? ?<version>2.4</version>
 ?</dependency>
 ?<!-- 添加百度编辑器ueditor支持 -->
 ?<dependency>
 ? ?<groupId>commons-fileupload</groupId>
 ? ?<artifactId>commons-fileupload</artifactId>
 ? ?<version>1.3.1</version>
 ?</dependency>
 ?<!-- jstl依赖 -->
 ?<dependency>
 ? ?<groupId>javax.servlet</groupId>
 ? ?<artifactId>jstl</artifactId>
 ? ?<version>1.2</version>
 ?</dependency>
 ?<!-- lombok插件 -->
 ?<dependency>
 ? ?<groupId>org.projectlombok</groupId>
 ? ?<artifactId>lombok</artifactId>
 ? ?<version>1.18.12</version>
 ? ?<scope>provided</scope>
 ?</dependency>
</dependencies>
<build>
 ?<finalName>lezijie-note</finalName>
 ?<plugins>
 ? ?<!-- 编译环境插件 -->
 ? ?<plugin>
 ? ? ?<groupId>org.apache.maven.plugins</groupId>
 ? ? ?<artifactId>maven-compiler-plugin</artifactId>
 ? ? ?<version>2.3.2</version>
 ? ? ?<configuration>
 ? ? ? ?<source>1.8</source>
 ? ? ? ?<target>1.8</target>
 ? ? ? ?<encoding>UTF-8</encoding>
 ? ? ?</configuration>
 ? ?</plugin>
 ? ?<!-- Tomcat插件 -->
 ? ?<plugin>
 ? ? ?<groupId>org.apache.tomcat.maven</groupId>
 ? ? ?<artifactId>tomcat7-maven-plugin</artifactId>
 ? ? ?<version>2.1</version>
 ? ? ?<configuration>
 ? ? ? ?<port>8080</port> <!-- 启动端口 默认:8080 -->
 ? ? ? ?<path>/note</path> <!-- 项目的站点名,即对外访问路径 -->
 ? ? ? ?<server>tomcat7</server> <!-- 服务器名称 -->
 ? ? ?</configuration>
 ? ?</plugin>
 ?</plugins>
</build>

数据库连接 配置文件 在 src/main/resources 目录下,新建 db.properties 文件

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

编写 DBUtil 在 com.lezijie.note.util 目录下,新建 Java 类

代码语言:javascript
复制
/**
* 数据库的工具类
* 1、得到数据库连接
* 2、关闭资源
*
*/
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 getConnection() {
 ? ? ? ?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 (Exception e) {
 ? ? ? ? ? ?e.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();
???????}
???}
}

单元测试 测试目录 在 src/main 目录下,新建 test 目录(测试目录),新建 java 目录(测试源文件夹) 测试数据库 在 test/java 目录的 com.lezijie.note 包下,新建测试类

代码语言:javascript
复制
/**
* 单元测试类
*/
public class TestDB {
 ? ?@Test
 ? ?public void testConnection() {
 ? ? ? ?System.out.println(DBUtil.getConnection());
 ? }
}

使用日志 配置文件 在 src/main/resources 目录下,新建 log4j.properties 文件

代码语言:javascript
复制
### 设置###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 ]

// 使用日志工厂类,记入日志
private static Logger logger = LoggerFactory.getLogger(DBUtil.class); 
// 记录日志
logger.info("在{}时,获取数据库连接", new SimpleDateFormat("yyyy-MM-dd 
HH:mm:ss").format(new Date()));

用户模块 用户登录 登录页面 在 src/main/wabapp 目录下, 新建 statics 文件夹,将静态资源拷贝进来(js、css、images及相关插 件) 1. HTML 转换为 JSP 在 wabapp 目录下,新建 login.jsp 页面,将 login.html 里面的内容拷贝到 login.jsp 中 2. 修改路径 修改引入的 js 、css、images 资源的路径 3. 访问页面 在浏览器中,通过 http://localhost:8080/note/login.jsp 访问 前端实现 思路分析 后端实现 编写 User

代码语言:javascript
复制
/**
* 用户类
*/
@Getter
@Setter
public class User {
 private Integer userId; // 用户ID,主键
 private String uname; // 用户名称
 private String upwd; // 用户密码
 private String nick; // 用户昵称
 private String head; // 用户头像
 private String mood; // 用户心情
 
}

编写 UserDao 通过用户名查询用户对象,返回 User 对象

代码语言:javascript
复制
public class UserDao {
 ? ?// 引入日志对象
 ? ?private Logger logger = LoggerFactory.getLogger(UserDao.class);
 ? ?/**
 ? ? * 根据用户名查询用户对象
 ? ? * @param userName
 ? ? * @return
 ? ? * @throws Exception
 ? ? */
 ? ?public User queryUserByName(String userName) {
 ? ? ? ?User user = null;
 ? ? ? ?Connection connection = null;
 ? ? ? ?PreparedStatement preparedStatement = null;
 ? ? ? ?ResultSet resultSet = null;
 ? ? ? ?try {
 ? ? ? ? ? ?// 1. 获取数据库连接
 ? ? ? ? ? ?connection = DBUtil.getConnection();
 ? ? ? ? ? ?// 2. 定义SQL语句
 ? ? ? ? ? ?String sql = "select userId,uname,upwd,nick,head,mood from tb_user 
where uname = ? ";
 ? ? ? ? ? ?// 打印SQL语句
 ? ? ? ? ? ?logger.info("SQL语句为:{}", sql);
 ? ? ? ? ? ?// 3. 获取预处理块
 ? ? ? ? ? ?preparedStatement = connection.prepareStatement(sql);
 ? ? ? ? ? ?// 4. 填充参数 执行 获得结果集
 ? ? ? ? ? ?preparedStatement.setString(1, userName);
 ? ? ? ? ? ?// 5. 执行查询,返回结果集
 ? ? ? ? ? ?resultSet = preparedStatement.executeQuery();
 ? ? ? ? ? ?// 6. 分析结果集,得到查询结果
 ? ? ? ? ? ?if(resultSet.next()){ //只有一个结果
 ? ? ? ? ? ? ? ?user = new User();
 ? ? ? ? ? ? ? ?user.setUserId(resultSet.getInt("userId"));
 ? ? ? ? ? ? ? ?user.setUname(resultSet.getString("uname"));

 ? ? ? ? ? ? ? ?user.setUpwd(resultSet.getString("upwd"));
 ? ? ? ? ? }
 ? ? ? } catch (Exception e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ? } finally {
 ? ? ? ? ? ?// 7. 关闭数据库连接
 ? ? ? ? ? ?DbUtil.close(connection, preparedStatement, resultSet);
 ? ? ? }
 ? ? ? ?return user;

字符乱码处理 非法访问拦截 自动登录 退出登录 显示用户信息 加载头像 验证昵称的唯一性 修改用户信息 类型模块 1.1 查询类型列表 1.2 验证类型名的唯一性 1.3 添加类型 1.4 修改类型 1.5 删除类型

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com