使用IDEA创建Maven项目(简单的spring与mybatis整合)

版权声明:懂我的人,无需声明。不懂我的人,何须声明。 https://blog.csdn.net/Earl_yuan/article/details/88083014

众所周知,eclipse在java开发IDE中占有很大的比重,因此从大学起直到现在工作也都一直使用的是eclipse作为开发工具。2019年初,在工作中开始接触到IDEA这个久闻大名的开发神器,一入手便爱上了它。刚从eclipse阵营转移过来,IDEA的相关操作还不甚熟悉,因此在这里创建一个spring整合mybatis的demo,并将相关操作记录此文,便于日后查阅及分享。

一、创建项目

打开IDEA首先会看到如下的界面:
在这里插入图片描述
点击Create New Project创建我们在IDEA的第一个项目。接下来会出现如下的界面,要我们选择创建何种项目。
在这里插入图片描述
目前我们都流行使用Maven来对项目进行管理,因此这里我们勾选Create from archetype,并在下面选择maven-archetype-webapp这个maven提供的骨架原型来创建项目。点击Next。
在如下界面中,我们需要配置当前项目的POM属性。
在这里插入图片描述
点击Next,开始选择本地的maven配置。
在这里插入图片描述
注意:如果是第一次使用maven,那么请一定要在maven的settings.xml文件中,加入如下的配置,将中央仓库配置为国内的仓库(这里采用的是阿里的仓库),否则除非使用科学上网的方式,要不然下载及构建项目时将会非常非常的慢。

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>

点击Next,在如下界面中填写该项目的名称及存储路径,
在这里插入图片描述
点击Finish即可完成项目的创建,稍等片刻IDEA的主界面将呈现在面前。

主界面打开后,IDEA会自动将maven项目构建,控制台输出BUILD SUCCESS时即表明当前的maven项目已经创建及构建成功。在右下角会出现Maven project need to be import,点击Enable auto-import,让其自动导入即可。
在这里插入图片描述

二、IDEA项目结构与Eclipse项目结构对比

Eclipse项目结构

在这里插入图片描述

IDEA项目结构

在这里插入图片描述
由于都是Maven项目,所以对比来看,两者主要的目录结构类似,只不过是不同IDE存在一些独有的文件及目录。

从上两幅图中可以看出,两个IDE创建的项目结构都不算太完整,在src下缺失了src/main/java,src/main/resources,src/test/java,src/test/resources,这个我们手动补齐即可。在IDEA中,当我们手动补齐这四个目录后,还需要进行一步设置,将他们分别标识为源代码根目录,资源根目录,及测试资源根目录。具体设置如下,点击File->Project Structure,按照下图设置即可。
在这里插入图片描述

三、spring整合mybatis

步骤一:

将spring及mybatis相关依赖引入项目。在pom.xml中添加如下配置:

1.添加如下配置全局定义属性。

<properties>
    <!--使用utf-8编码-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--spring version-->
    <spring.version>4.3.14.RELEASE</spring.version>
</properties>

2.添加如下配置将spring依赖导入。

<dependencies>
    <!-- Spring依赖 -->
    <!-- 1.Spring核心依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <!-- 这里会获取到properties标签内配置的spring.version的值 -->
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- 2.Spring dao依赖 -->
    <!-- spring-jdbc包括了一些如jdbcTemplate的工具类 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- 3.Spring web依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- 4.Spring test依赖:方便做单元测试和集成测试 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
    </dependency>
</dependencies>

3.添加如下配置,将mybatis相关依赖导入。

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

4.添加如下配置,将mybatis与spring整合相关依赖导入。

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.0</version>
</dependency>

5.添加如下配置,将mysql连接驱动相关依赖导入。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>
步骤二:

在src/main/resources目录上右键,New->XML Configuration File->Spring Config,创建一个spring的配置文件。
在这里插入图片描述
在web.xml中添加如下配置,将spring配置文件加入到项目的上下文中。

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
  
步骤三:

在applicationContext.xml中添加如下配置,定义数据源,会话工厂及mapper扫描器。

<!-- 定义数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/earl_test?serverTimezone=UTC"></property>
    <property name="username" value="root"></property>
    <property name="password" value=""></property>
</bean>

<!-- 定义连接会话工厂 -->
<bean name="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 定义mybatis扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- 扫描的基础包 -->
    <property name="basePackage" value="com.earl.mapper"></property>
    <!-- 连接会话工厂 -->
    <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
</bean>
步骤四:

至此,spring与mybatis的简单整合已经完成,接下来我们通过一个测试方法来测试是否整合成功。在src/main/java下新建两个包,分别为存放映射数据表对象的model包和存放数据表操作的mapper包。我本地数据库中有个student表,因此对应在model包中建立一个与student表字段一致的Student对象,并在mapper包中创建一个接口StudentMapper,接口中简单定义查询全部学生的方法。具体如下图所示:
在这里插入图片描述
在src/test/java下新建测试方法,具体如下:

import com.earl.mapper.StudentMapper;
import com.earl.model.Student;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class HelloworldTest {

    @Test
    public void testQueryAll(){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

        StudentMapper studentMapper=(StudentMapper) context.getBean("studentMapper");
        List<Student> students=studentMapper.queryAllStudents();
        students.forEach(student->{
            System.out.println(student);
        });
    }

}

运行该测试方法,能够获取到student表的全部数据。

四、小结

通过此次使用IDEA创建maven项目,真的品味到IDEA迷人之处,在项目配置等操作上的确要比Eclipse人性化很多,感受最深刻的就是在代码提示功能上,给了我前所未有的体验。好了,有了IDEA入门的使用经验后,在后面的工作学习过程中就可以再慢慢发掘它更深的使用。

猜你喜欢

转载自blog.csdn.net/Earl_yuan/article/details/88083014