栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IntelliJ IDEA创建maven项目教程(上)- 含有问题解决过程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

IntelliJ IDEA创建maven项目教程(上)- 含有问题解决过程

目录

前言

一、创建项目

二、引入jar包、外部前端框架,配置Tomcat

1、引入项目依赖的jar包

2、引入bootstrap、jquery等前端框架

3、配置Tomcat服务器

4、测试运行

三、配置文件

1、配置web.xml

2、配置SpringMVC的配置文件:dispatcherServlet-servlet.xml

3、Spring的配置文件:applicationContext.xml

4、MyBatis的配置文件:mybatis-config.xml


前言

使用IntelliJ IDEA一步步搭建SSM框架

JDK版本:1.8

电脑系统:MAC OS

IDEA版本:2022.1.2


一、创建项目

依次点击File  New  Project

填写好项目名称、路径、JDK版本,Archetype勾选图中圈出的,点create

等待几分钟,项目创建完成

在src目录下新建一个java(用来放Java代码)和一个resources(用来放配置文件)目录

在 菜单File中找到Project Structure进入,将java目录设置成Sources(即选中java目录,然后点击Make as:的第一个Sources),同理将resources设置成Resources,然后点击Apply,点击ok,java目录就变成了蓝色的了

 在java目录下新建如下的几个包备用,分别用来放实体类(pojo)、dao(dao层)、service(service层)、controller(控制层)、test(测试类)

至此,项目基本的文件就创建完成了,接下来就是引入项目所依赖的jar包

二、引入jar包、外部前端框架,配置Tomcat

1、引入项目依赖的jar包

包括Spring、SpringMVC、Spring JDBC、Spring面向切面编程、MyBatis、MyBatis整合Spring的适配包以及数据库连接池c3p0、驱动mysql-connector-java、其他包(jstl、servlet-api、junit)。


		
		
		
			org.springframework
			spring-webmvc
			5.3.20
		
		
		
		
			org.springframework
			spring-jdbc
			5.3.20
		
		
		
		
			org.springframework
			spring-aspects
			5.3.20
		
		
		
		
			org.mybatis
			mybatis
			3.5.9
		
		
		
		
			org.mybatis
			mybatis-spring
			2.0.6
		
		
		
		
			c3p0
			c3p0
			0.9.1.2
		
		
		
			mysql
			mysql-connector-java
			8.0.28
		
		
		
		
			jstl
			jstl
			1.2
		
		
		
			javax.servlet
			servlet-api
			2.5
			provided
		
		
		
		
			junit
			junit
			4.13.1
			test
		
	

如果没有自动下载jar包就点击右上角如下图所示的按钮,这是intellij idea新版才有的

2、引入bootstrap、jquery等前端框架

在webapp目录下新建static目录用来存放外部引入的静态文件,views用来存放前端页面

在index.jsp中引入所需的框架,第一行用来设置字符编码,否则页面会乱码。

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


    test
    
    
    



Hello World!

3、配置Tomcat服务器

进入apach官网,点击要下载的服务器版本

​

我这里下载的是压缩包,解压后可以直接使用

​下载好以后解压到某文件夹中,我这里放在了和项目同级目录下

​ 然后进入IDEA,如下图,点击Edit Configurations,

​

 点击左上角的“+”号,找到Tomcat Server下的Local,

​

 选择JDK版本,我这里是1.8,HTTP port默认都是8080,点击Configure

​ 选择好tomcat的目录

​ 注意:下面的Classes是在tomcat目录下的两个jar包

​

 ​

 在Deployment中点击+号选择Artifact(或者点击红色感叹号提示的Fix)

​

 选择带exploded的,点击OK,再点上图中的OK,回到工程页面

​

4、测试运行

点击运行按钮,开始运行项目

​

 运行成功!​

三、配置文件

1、配置web.xml
(1)启动Spring的容器,ContextLoaderListener
(2)SpringMVC的前端控制器,拦截所有请求,servlet-class:DispatcherServlet,servlet-name必须配置成dispatcherServlet,且必须在web.xml同级目录下创建一个名为dispatcherServlet-servlet.xml的配置文件。
(3)字符编码过滤器,一定要放在所有过滤器之前。
filter-class:CharacterEncodingFilter。用init-param将encoding设置为utf-8,将forceRequestEncoding和forceResponseEncoding手动设置为true。
(4)使用rest风格的URI,将页面普通的post请求转为指定的delete或者put请求。
filter-class:HiddenHttpMethodFilter



    
    
        contextConfigLocation
        classpath:applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        1
    
    
        dispatcherServlet
        /
    

    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
        
            forceRequestEncoding
            true
        
        
            forceResponseEncoding
            true
        
    
    
        CharacterEncodingFilter
        /*
    

    
    
        HiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        HiddenHttpMethodFilter
        /*
    

2、配置SpringMVC的配置文件:dispatcherServlet-servlet.xml
(1)context:component-scan 设置扫描规则,context:include-filter只扫描控制器,use-default-filters="false"禁用掉默认的扫描规则。
(2)配置视图解析器,方便页面返回 页面存放位置以及后缀的设置。
(3)两个标准配置:
将Spring不能处理的请求交给tomcat:mvc:default-servlet-handler
支持SpringMVC更高级的一些功能,JSR303校验,快捷ajax,映射动态请求:mvc:annotation-driven


    
    
        
        
    

    
    
        
        
    

    
    
    
    
    

3、Spring的配置文件:applicationContext.xml
主要配置和业务逻辑有关的
(1)因为SpringMVC已经扫描了控制器,这里需要设置不扫描控制器
(2)数据源、事物控制
(3)配置和MyBatis的整合
(4)配置扫描器,将mybatis接口的实现加入到ioc容器中
(5)事物控制的配置
(6)开启基于注解的事务,使用xml配置形式的事务(比较重要的都是使用配置式)
(7)配置事务增强,事务如何切入



    
    
    
        
    
    
    
    
    
        
        
        
        
    

    
    
        
        
        
        
        
    

    
    
        
        
    

    
    
        
        
    

    
    
    
        
    
        
    
    
    
        
            
            
            
            
        
    

    

dbconfig.properties 

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/ssm-curd
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=flkQH1uK)J4J

4、MyBatis的配置文件:mybatis-config.xml

mybatis的官方文档,Getting Started下找到示例

获取到表头,因为数据源已经在Spring中配置过了,所以在mybatis中就不再配置

在configuration标签下配置setting和alias

驼峰命名规则mapUnderscoreToCamelCase 




    
        
    
    
        
    

 使用mybatis的逆向工程生成对应的pojo以及mapper

(1)先引入mybatis generator的jar包



    org.mybatis.generator
    mybatis-generator-core
    1.3.7

(2)进入官方文档,找到示例

 将示例代码复制粘贴到工程根目录下的mbg.xml中,根据自己的项目进行修改





    
        
        
        

        
            
        

        
        
            
            
        

        
        
            
        

        
        
            
        

        
        

 table标签可以查看官方文档,主要用到两个属性:

tableName必填的数据库表名 和 domainObjectName对应到实体类的类名

 

 配置文件配置好之后,用Java代码进行生成,参考官方文档

 创建MBGTest.java,运行

package com.wq.test;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class MBGTest {
    public static void main(String[] args) throws Exception {
        List warnings = new ArrayList();
        boolean overwrite = true;
        File configFile = new File("mbg.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}

结果有以下几个问题:

(1)数据库名写错了, ssm-crud写成了ssm_curd,以及ssm_crud,改了两次才改正确;
(2)数据库版本高(其实不是数据库版本高,是jar包的版本高),驱动com.mysql.jdbc.Driven弃用,需要换成com.mysql.cj.jdbc.Driven。为了避免冲突,将jar包版本整体替换成如下:
        
        
        
            org.mybatis.generator
            mybatis-generator-core
            1.3.5
        
        
        
            org.springframework
            spring-webmvc
            4.3.7.RELEASE
        
        
        
        
            org.springframework
            spring-jdbc
            4.3.7.RELEASE
        

        
        
        
            org.springframework
            spring-test
            4.3.7.RELEASE
        


        
        
        
            org.springframework
            spring-aspects
            4.3.7.RELEASE
        

        
        
        
            org.mybatis
            mybatis
            3.4.2
        
        
        
        
            org.mybatis
            mybatis-spring
            1.3.1
        

        
        
        
            c3p0
            c3p0
            0.9.1
        
        
        
            mysql
            mysql-connector-java
            5.1.41
        
        
        
        
            jstl
            jstl
            1.2
        

        
        
            javax.servlet
            javax.servlet-api
            3.0.1
            provided
        


        
        
        
            junit
            junit
            4.12
        
(3) Sun Jul 12 12:06:56 CST 2020 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
这个问题是由于没有服务器身份验证的情况下建立SSL连接。
解决办法:把url改成jdbc:mysql://localhost:3306/ssm-crud?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false,这句话可以避免好多坑。
(4)上述问题都解决了,MBGTest代码执行成功,但是没有生成对应的实体类及dao层的代码;
解决办法:在MBGTest.java的代码最后加上代码:
        if (warnings.isEmpty()){
            System.out.printf("文件生成成功");
        }else {
            System.err.println(warnings);
        }
MBGTest.java代码如下:
package com.wq.test;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class MBGTest {
    public static void main(String[] args) throws Exception {
        List warnings = new ArrayList();
        boolean overwrite = true;
        File configFile = new File("mbg.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
        if (warnings.isEmpty()){
            System.out.printf("文件生成成功");
        }else {
            System.err.println(warnings);
        }
    }
}
结果执行的时候,出现如下的问题:The specified target project directory .srcmainresources does not exist,The specified target project directory .srcmainjava does not exist。这个问题是mbg.xml配置文件中的javaModelGenerator、sqlMapGenerator、javaClientGenerator三个标签中targetProject属性设置错误导致。将.srcmainresources修改为./src/main/resources,将.srcmainjava修改为./src/main/java,问题解决。

逆向生成的代码为:

代码是生成了,但是代码中有很多注释,看起来不太方便, 

从官方文档可以看到,通过在配置文件中加入如下配置,生成代码时将不会添加注释。


    

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号