springMvc配置太复杂?试试boot啊
新建一个maven springboot 项目
我上一篇配的那个就挺好,
pom,在上一篇的基础上加上myBatis的配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 依赖 -->
<!-- 核心模块,包括自动配置支持、日志和YAML -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 测试模块,包括JUnit、Hamcrest、Mockito -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 引入Web模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!--mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1 先在resources中配好配置文件application.yml
server:
port: 8010
spring :
datasource :
url :你的数据库地址
username :你的数据库用户名
password : 你的数据库密码
driver-class-name : com.mysql.jdbc.Driver
#指定mybatis映射文件的地址
mybatis :
mapper-locations : classpath:mapper/*.xml
config-location : classpath:mybatis-config.xml
3 在application.yml中指定的位置配好myBatis的配置文件mybatis-config.xml
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
<typeAlias alias="pd" type= "spring.unit.PageData" />
</typeAliases>
<mappers>
<mapper resource="mybatis/userMapper.xml"/>
</mappers>
</configuration>
参数说明
typealias
用来为已经存在的类型重新定义名字的,通过命名,可以使代码变得更加清晰。
mappers
用来在mybatis初始化的时候,告诉mybatis需要引入哪些Mapper映射文件。
Mapper映射文件
是Java实体类与数据库对象之间的桥梁。在实际的使用过程中,一般一个Mapper文件对应一个数据库操作Dao接口。
4,在上面配置文件中指定的位置写好mapper映射文件
<mapper namespace="spring.dao.userDao" >
<select id="selectUserInfo" resultType="pd">
select
*
from
userInfo
</select>
</mapper>
参数说明
namespace
在mybatis中,映射文件中的namespace是用于绑定Dao接口的,当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句
5 写namespace绑定的dao层接口(PageData是我自己写的一个map类,可以随意替换需要的数据类型)
public interface userDao {
public PageData selectUserInfo();
}
6写好dao层接口后,本来是需要些service层,通过service调用dao层接口,再通过controller调用service,但这里为了测试方便直接用controller依赖注入dao层来调用接口
@RestController
@RequestMapping("/user")
public class userController {
@Autowired
userDao dao;
@RequestMapping("/getInfo")
public PageData getUserInfo(){
return dao.selectUserInfo();
}
}
项目结构
项目结构很重要,业务代码必须放在启动类的子包下面,不然会扫不到,导致依赖注入失败,然后命名也很重要不然会产生冲突无情报错,我之前就因为把映射文件夹命名为mapper而产生冲突报错
Result Maps collection does not contain value for sys.dao.userDao.Map
当然如果一切顺利很快就可以把数据库的数据查出来