springboot大家都知道了,搭建一个spring框架只需要秒秒钟。下面给大家介绍一下springboot与mybatis的完美融合:
首先:创建一个名为springboot-mybatis的maven项目,记住:一定要maven哦,不懂maven的可以自己恶补一下maven知识,这里就不介绍maven了。
下面给出pom.xml的完整配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>springboot-mybatis</groupId> 8 <artifactId>springboot-mybatis</artifactId> 9 <version>1.0.0</version> 10 <packaging>war</packaging> 11 12 <name>springBoot-mybatis</name> 13 <description>Spring Boot project</description> 14 15 <parent> 16 <groupId>org.springframework.boot</groupId> 17 <artifactId>spring-boot-starter-parent</artifactId> 18 <version>1.3.2.RELEASE</version> 19 <relativePath/> 20 </parent> 21 22 <properties> 23 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 29 <dependency> 30 <groupId>org.springframework.boot</groupId> 31 <artifactId>spring-boot-starter</artifactId> 32 </dependency> 33 34 <dependency> 35 <groupId>org.springframework.boot</groupId> 36 <artifactId>spring-boot-starter-test</artifactId> 37 <scope>test</scope> 38 </dependency> 39 40 <dependency> 41 <groupId>org.mybatis.spring.boot</groupId> 42 <artifactId>mybatis-spring-boot-starter</artifactId> 43 <version>1.1.1</version> 44 </dependency> 45 46 <dependency> 47 <groupId>org.springframework.boot</groupId> 48 <artifactId>spring-boot-starter-web</artifactId> 49 </dependency> 50 51 <dependency> 52 <groupId>mysql</groupId> 53 <artifactId>mysql-connector-java</artifactId> 54 <version>5.1.21</version> 55 </dependency> 56 57 </dependencies> 58 59 <build> 60 <plugins> 61 <plugin> 62 <groupId>org.springframework.boot</groupId> 63 <artifactId>spring-boot-maven-plugin</artifactId> 64 </plugin> 65 <plugin> 66 <groupId>org.apache.maven.plugins</groupId> 67 <artifactId>maven-surefire-plugin</artifactId> 68 <configuration> 69 <skip>true</skip> 70 </configuration> 71 </plugin> 72 </plugins> 73 </build> 74 75 </project>
之后创建一个启动类:
1 package org.shenlan; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6 /** 7 * Created by wangwei on 2016/9/2. 8 */ 9 @SpringBootApplication 10 public class Application { 11 public static void main(String[] args){ 12 SpringApplication.run(Application.class,args); 13 } 14 }
这样一个完整的springboot项目就完成了,是不是很简单。
接下来就可以整理与mybatis的东东了。
首先,创建配置文件:application.properties
1 spring.datasource.url=jdbc:mysql://localhost:3306/test 2 spring.datasource.username=root 3 spring.datasource.password=root 4 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 5 6 server.port=1111
这里server.port=1111是定义了改项目的端口,默认的是8080.
然后,定义一个java的实体类:
1 package org.shenlan.web; 2 3 /** 4 * Created by wangwei on 2016/9/2. 5 */ 6 public class User { 7 private Integer id; 8 private String name; 9 private Integer age; 10 11 public Integer getId() { 12 return id; 13 } 14 15 public void setId(Integer id) { 16 this.id = id; 17 } 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public Integer getAge() { 28 return age; 29 } 30 31 public void setAge(Integer age) { 32 this.age = age; 33 } 34 }
这里实体类的字段要和数据库的字段对应起来,不然就要取别名了。
之后,定义一个dao的接口:
1 package org.shenlan.web; 2 3 import org.apache.ibatis.annotations.Mapper; 4 import org.apache.ibatis.annotations.Param; 5 import org.apache.ibatis.annotations.Select; 6 7 /** 8 * Created by Administrator on 2016/9/2. 9 */ 10 @Mapper 11 public interface UserMapper { 12 13 @Select("select * from user where name = #{name}") 14 User findUserByName(@Param("name")String name); 15 }
@Mapper就是我们要与mybatis融合关键的一步,只要一个注解就搞定了。
哈哈哈,最后我们就来写一个测试类吧:
1 package org.shenlan.web; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.ResponseBody; 6 import org.springframework.web.bind.annotation.RestController; 7 8 /** 9 * Created by wangwei on 2016/9/2. 10 */ 11 @RestController 12 @RequestMapping({"/home"}) 13 public class UserController { 14 @Autowired 15 UserMapper userMapper; 16 17 @RequestMapping(value = "/user") 18 @ResponseBody 19 public String user(){ 20 User user = userMapper.findUserByName("王伟"); 21 return user.getName()+"-----"+user.getAge(); 22 } 23 }
@RestController是对应的restful风格的控制器,@RequestMapping里面可以对应一个数组哦
打开浏览器,输入:http://localhost:1111/home/user
效果如下:
上面的对于简单的sql确实是非常的容易搞定,但是对于复杂的sql还是要到专门的地方去写啊!
接下来就为大家说说如何配置mapper.xml.
mybatis: type-aliases-package: com.wangsu_bi.web.entity config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath:mybatis/mapper/*.xml
以上是在application.yml中配置的mybatis属性:
mybatis-config.xml的结构如下:
<?xml version="1.0" encoding="UTF-8"?> <!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" /> </typeAliases> </configuration>
这样就ok啦。就可以在mapper.xml中疯狂的写我们所需要的SQL啦!
本博客涉及的项目的地址:https://github.com/shenlanzhizunjustwangwei/springBoot
希望大家喜欢。