Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开发环境IDEA + Maven + MySQL + Jdk1.8 + Tomcat

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

作者头像
用户3519280
发布于 2023-07-07 11:38:06
发布于 2023-07-07 11:38:06
28300
代码可运行
举报
文章被收录于专栏:c++ 学习分享c++ 学习分享
运行总次数:0
代码可运行

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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
代码运行次数:0
运行
AI代码解释
复制
# 连接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
代码运行次数:0
运行
AI代码解释
复制
/**
* 数据库的工具类
* 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
代码运行次数:0
运行
AI代码解释
复制
/**
* 单元测试类
*/
public class TestDB {
    @Test
    public void testConnection() {
        System.out.println(DBUtil.getConnection());
   }
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
### 设置###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
代码运行次数:0
运行
AI代码解释
复制
/**
* 用户类
*/
@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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
_Maven聚合开发【实例详解---5555字】
会洗碗的CV工程师
2023/11/21
1500
_Maven聚合开发【实例详解---5555字】
Mybatis系列全解(一):手写一套持久层框架
自毕业以后,自己先创业后上班,浮沉了近8年,内心着实焦躁,虽一直是走科班路线,但在技术道路上却始终没静下心来研究、思考、梳理,机会来了,便抓牢。
潘潘和他的朋友们
2021/01/25
7591
Mybatis系列全解(一):手写一套持久层框架
Shiro学习笔记六(自定义Reaml-使用数据库设置 user roles permissions)
对于什么是Realm,我使用过之后,个人总结一下:shiro要进行身份验证,就要从realm中获取相应的身份信息来进行验证,简单来说,我们可以自行定义realm,在realm中,从数据库获取身份信息,然后和 用户输入的身份信息进行匹配。这一切都由我们自己来定义。
梅花
2020/09/28
4190
Shiro学习笔记六(自定义Reaml-使用数据库设置 user roles permissions)
MyBatis 从认识到环境搭建
在这个类中包括:数据库驱动的加载、数据库连接的配置、连接对象的获取、以及释放关闭,以及具体的SQL以及其执行语句,下面是一个
BWH_Steven
2020/02/20
4110
SSM笔记(一)框架整合
用了好久了,但都是当初大神配置完后直接粘贴复制过来的,一直没仔细看过相关配置,趁此机会对自己也算是一个复习与深入,也希望对初学者有所帮助。本系列均是基于IDEA的教程。在学校时用的Eclipse,刚出校门接触的MyEclipse,一年后接触到IDEA就从此彻底倒戈。
WindCoder
2018/09/19
1.4K0
SSM笔记(一)框架整合
详解Window10下使用IDEA搭建Hadoop开发环境
经过三次重装,查阅无数资料后成功完成hadoop在win10上实现伪分布式集群,以及IDEA开发环境的搭建。一步一步跟着本文操作可以避免无数天坑。
时代疯
2021/07/22
3.6K0
java进阶|jdbc的用法
大概是17年时用过jdbc进行操作数据库,到现在为止没有再用过jdbc去写过一个示例程序,即简单的增删改查操作,CRUD也不是那么容易写吧,后面就开始基于ORM框架进行数据的操作了,是的,各种ORM框架我都用过。
码农王同学
2020/06/17
3500
Mybatis 基础介绍与逆向工程的构建
Mybatis系列: Mybatis 基础介绍与逆向工程的构建 :https://www.jianshu.com/p/1c18db4d7a38 Mybatis 源码分析(一)之 Mybatis 的Executor的初始化:https://www.jianshu.com/p/c7425c841337 Mybatis 源码分析(二)之 Mybatis 操作数据库的流程 :https://www.jianshu.com/p/11d354ec3612 Mybatis 源码分析(三)之 Mybatis 的一级缓存和二级缓存 :https://www.jianshu.com/p/5515640d14fe
zoro
2019/04/11
6380
Mybatis 基础介绍与逆向工程的构建
Java之——基于java开发的功能强大、配置灵活的数据库之间的同步工具
基于java开发的功能强大、配置灵活的数据库之间的同步工具,和数据产生器一样,均是前段时间因为项目需要编写的小工具,在实际应用场景中,我们经常需要定期将一个数据库的数据同步到另外一个数据库中,常见的一种做法是将源数据库的数据dump为sql文件,然后到目标数据库执行sql文件完成数据库的导入,但是这种方法至少存在以下问题: (1)需要手工操作,效率低 (2)当涉及数据表较多时,容易遗漏、出错 (3)如果要定期同步,操作人容易忘记 (4)难以应付频繁变更数据表或者字段
冰河
2020/10/29
1.3K0
Java之——基于java开发的功能强大、配置灵活的数据库之间的同步工具
MyBatis-01 MyBatis入门篇
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。
小小工匠
2021/08/17
3240
SpringBoot整合Druid、Mysql、P6spy服务
3.看到配置文件中的driver-class-name: com.p6spy.engine.spy.P6SpyDriver我们就知道用的不是mysql的url,这是p6spy的配置,所以,我们还需要一个spy.properties文件
甄士隐
2022/01/26
2K0
SpringBoot整合Druid、Mysql、P6spy服务
快速学习-Flume高级之自定义MySQLSource
Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。官方提供的source类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些Source。
cwl_java
2020/02/19
9280
idea+mybatis+maven main测试
项目结构 pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0
用户5899361
2020/12/07
2860
idea+mybatis+maven  main测试
Mybatis【4】-- 关于Mybatis别名定义
其实在我们实际开发中,大多数情况下,一个mapper.xml文件对应的是对一个对象的操作,当前的mapper如下:
秦怀杂货店
2020/11/28
5920
Mybatis【4】-- 关于Mybatis别名定义
maven工程建立和SSM(springMVC+spring+mybatis)整合
new -> other -> Maven Project-> next-> 勾选 Create a simple project -> next ->
微风-- 轻许--
2022/04/13
2290
maven工程建立和SSM(springMVC+spring+mybatis)整合
一文学会Spring JDBC 使用
log4j.properties 日志配置文件 (当启动程序,没有任何报错,但是没有信息打印时,需要配置日志)
用户7630333
2023/12/07
1720
一文学会Spring JDBC 使用
Spring-boot+Mybatis+Maven+MySql搭建实例
我习惯于先创建好maven项目,构建目录再导入到编译器中,这样的好处就是搭建好一个脚手架模板,后面改改参数就可以用到各个工程里面。
后端码匠
2019/11/18
5910
IDEA版本的Mybatis逆向工程使用攻略「建议收藏」
今天早上打算做一个spring+springmvc+mybatis的项目,然后感觉这个mapper文件太难写了,最后就想在网上找一个方法能解决不写mapper文件的方法,最后就发现了这个懒人必背法宝:“myabtis逆向工程”的技术,但是全网几乎都是“eclipse 版本生成 MyBatis 逆向工程”,然后自己就搞了一个idea+maven版本的逆向工程,并且全部在gitee开源了的哟,如果你也想做懒人,就使用mybatis的逆向工程吧!(开源地址在文末!)
全栈程序员站长
2022/09/24
1.9K0
IDEA版本的Mybatis逆向工程使用攻略「建议收藏」
SSM 框架整合
SSM 框架是 (Spring+SpringMVC+MyBatis)的缩写,这个框架是继 SSH(Spring+Struts+Hibernate)之后,目前比较主流的 Java EE 企业级框架,适合搭建各种中小型的企业级应用系统。由于之前也没有Java Web相关的工作经验以及后台系统开发经验,更别说应用框架来开发应用系统了。通过各方面的了解,SSM框架作为轻量级应用框架,速度快,效率高,最主要的还是学习成本更低。这样我们能更快地学习并应用到我们的项目当中!所以,追踪器的项目选择了 SSM这套框架作为我们的后台开发框架!以下,便详细的说明各个框架的优缺点以及 框架的具体搭建步骤
AI码真香
2022/09/13
1.5K0
SSM 框架整合
Flume快速入门系列(10) | 如何自定义MySQLSource
  实时监控MySQL,从MySQL中获取数据传输到HDFS或者其他存储框架,所以此时需要我们自己实现MySQLSource。   官方也提供了自定义source的接口:   官网说明:https://flume.apache.org/FlumeDeveloperGuide.html#source
不温卜火
2020/10/28
6220
Flume快速入门系列(10) | 如何自定义MySQLSource
相关推荐
_Maven聚合开发【实例详解---5555字】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档