赞
踩
众所周知,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,让其自动导入即可。
由于都是Maven项目,所以对比来看,两者主要的目录结构类似,只不过是不同IDE存在一些独有的文件及目录。
从上两幅图中可以看出,两个IDE创建的项目结构都不算太完整,在src下缺失了src/main/java,src/main/resources,src/test/java,src/test/resources,这个我们手动补齐即可。在IDEA中,当我们手动补齐这四个目录后,还需要进行一步设置,将他们分别标识为源代码根目录,资源根目录,及测试资源根目录。具体设置如下,点击File->Project Structure,按照下图设置即可。
将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入门的使用经验后,在后面的工作学习过程中就可以再慢慢发掘它更深的使用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。