springboot+mybatis+springmvc整合实例
以往的ssm框架整合通常有两种形式,一种是xml形式,一种是注解形式,不管是xml还是注解,基本都会有一大堆xml标签配置,其中有很多重复性的。springboot带给我们的恰恰是“零配置”,"零配置"不等于什么也不配置,只是说相对于传统的ssm框架的xml配置或是注解配置,要少的多。作为常规的来说,一个ssm框架整合,拿maven来说,首先在src/main/resource下加入jdbc.properties,spring-mvc.xml,spring-mybatis.xml等,还有要再web.xml配置监听类和前端控制器,同时还要配置对应的加载spring-mvc和spring-mybatis的路径。 而springboot的话,则不需要,只需在一个叫application.properties或者是叫application.yml配置数据源和解析jsp的即可。 参考网址:https://www.ggdoc.com 上述网址有许多参考文档可参考 参考网址:https://projects.spring.io/spring-boot/? 该网址为springboot官网,官网虽然是英文的,但是可以通过第三方翻译过来,不过最好的话还是懂点英文。建议学习一门新技术,最好还是参考其官方网址和文档,那里是最详细的,其他什么博客之类的,可以作为参考学习过程中解决问题的利器。学习过程中是不可能不遇到问题的。 最好还是那句话,在不懂该技术之前,可以通过百度百科了解,或者其他博客写个入门实例,不过最好在此以后参考官网 就我个人的看法,必须和最好掌握spring+mybatis+springmvc等相关知识,同时也接触过ssm框架的xml配置和ssm框架的注解配置。这样方便比较学习,同时也有利于深入学习等。 不多说了,下面开始整合实例教程 一、准备环境 window10 jdk8 eclipe maven 二、pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.springboot</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--Spring Boot -->
<!--支持 Web 应用开发,包含 Tomcat 和 spring-mvc。 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--支持使用 JDBC 访问数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--添加适用于生产环境的功能,如性能指标和监测等功能。 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!--Mysql / DataSource -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--Json Support -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.43</version>
</dependency>
<!--Swagger support -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.9.5</version>
</dependency>
<!-- 支持jsp start -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- end -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestone</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
?三、准备数据库和表 库名为 springboot
CREATE TABLE `t_user` (
`id` INT(11) NOT NULL,`username` VARCHAR(255) DEFAULT NULL,`password` VARCHAR(255) DEFAULT NULL,`email` VARCHAR(255) DEFAULT NULL,`useable` INT(20) DEFAULT NULL,`addtime` DATETIME DEFAULT NULL,`logintime` DATETIME DEFAULT NULL,`loginip` VARCHAR(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
四、在src/main/resource下新建application.properties文件 spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull spring.datasource.username=root spring.datasource.password=1234 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.view.prefix=/WEB-INF/templates/ spring.view.suffix=.jsp ? 五、建立实体类和对应的mapper接口相关 1.建立实体 package com.sam.project.mvc.model; /** * @ClassName: User * @Description: 实体模型 */ public class User { private Integer id; String username; String password; String email; * 是否可用(0禁用,1可用) */ Integer useable; * 创建时间 String addtime; * 登陆时间 String logintime; * 登陆IP String loginip; * @return id public Integer getId() { return id; } @paramvoid setId(Integer id) { this.id = username String getUsername() { username; } setUsername(String username) { this.username = password String getPassword() { password; } setPassword(String password) { this.password = email String getEmail() { email; } setEmail(String email) { this.email = * 获取是否可用(0禁用,1可用) * * useable - 是否可用(0禁用,1)"> Integer getUseable() { useable; } * 设置是否可用(0禁用,1)"> useable * 是否可用(0禁用,1)"> setUseable(Integer useable) { this.useable = * 获取创建时间 * * addtime - 创建时间 String getAddtime() { addtime; } * 设置创建时间 * * addtime * 创建时间 setAddtime(String addtime) { this.addtime = * 获取登陆时间 * * logintime - 登陆时间 String getLogintime() { logintime; } * 设置登陆时间 * * logintime * 登陆时间 setLogintime(String logintime) { this.logintime = * 获取登陆IP * * loginip - 登陆IP String getLoginip() { loginip; } * 设置登陆IP * * loginip * 登陆IP setLoginip(String loginip) { this.loginip = loginip; } } 2.建立对应的mapper接口 com.sam.project.mvc.mapper; import java.util.List; com.sam.project.mvc.model.User; * @ClassName: UserMapper * @Description: mybites数据查询接口 */ interface UserMapper { List<User> queryList(); save(User user); batchDelete(Integer[] ids); update(User user); } 3.建立mapper对应的xml文件 在src/main/resource下新建mapper文件夹 在该文件下下新建UserMapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.sam.project.mvc.mapper.UserMapper"> select id="queryList" resultType="com.sam.project.mvc.model.User"> SELECT u.id,u.username,u.password,u.email,u.useable,u.addtime,u.logintime,u.loginip FROM t_user u </select> ="queryById"insert ="save" insert into t_user(username,password,email,useable,addtime) values(#{username},#{password},#{email},#{useable},now()) insertupdate ="update" update t_user set password = #{password},email = #{email},useable = #{useable} where id = #{id} updatedelete ="batchDelete" delete from t_user where id in foreach collection="array" item="item" open="(" separator="," close=")" #{item} foreachdelete<!-- <delete id="delUsers"> delete from t_user where id in <foreach collection="list" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete> --> mapper> ? 六、建立业务接口和对应的Controller及其相关返回json数据工具类 1.UserService业务接口 com.sam.project.mvc.service; java.util.List; org.springframework.beans.factory.annotation.Autowired; org.springframework.stereotype.Service; com.sam.project.mvc.common.AjaxResult; com.sam.project.mvc.mapper.UserMapper; com.sam.project.mvc.model.User; @Service UserService { @Autowired UserMapper userMapper; AjaxResult queryList() { List<User> list = userMapper.queryList(); return new AjaxResult(list); } AjaxResult save(User user) { user.setUsername("user" + System.currentTimeMillis()); user.setPassword("123456"); user.setEmail("user" + System.currentTimeMillis()); user.setUseable(1); userMapper.save(user); AjaxResult(); } AjaxResult batchDelete(Integer[] ids) { userMapper.batchDelete(ids); AjaxResult update(User user) { userMapper.update(user); AjaxResult(); } } ? 2.controller com.sam.project.mvc.controller; org.springframework.stereotype.Controller; org.springframework.ui.ModelMap; org.springframework.web.bind.annotation.RequestMapping; org.springframework.web.bind.annotation.ResponseBody; com.sam.project.mvc.model.User; com.sam.project.mvc.service.UserService; * @ClassName: UserController * @Description: 用户Controller */ @Controller UserController { @Autowired UserService userService; @ResponseBody @RequestMapping("/queryList") AjaxResult queryList(){ userService.queryList(); } @ResponseBody @RequestMapping("/addUser" AjaxResult addUser(User user){ userService.save(user); } @ResponseBody @RequestMapping("/delUser") AjaxResult delUser(Integer[] ids){ userService.batchDelete(ids); } @ResponseBody @RequestMapping("/updateUser" AjaxResult updateUser(User user){ userService.update(user); } @RequestMapping("/hello") String hello(ModelMap map) { map.put("title","你好"); return "index"; } } 3.工具类 com.sam.project.mvc.common; * @ClassName: AjaxResult * @Description: 封装返回数据 AjaxResult { private int retcode = 1; private String retmsg = "操作成功" Object data; public AjaxResult(int retcode,String retmsg,Object data){ this.retcode = retcode; this.retmsg = retmsg; this.data = data; } retmsg; } AjaxResult(Object data){ this.retmsg = "查询成功"; retcode){ this.retmsg = "操作失败"; } AjaxResult(String retmsg){ this.retcode = 0 AjaxResult(){ } getRetcode() { retcode; } void setRetcode( retcode) { String getRetmsg() { retmsg; } setRetmsg(String retmsg) { Object getData() { data; } setData(Object data) { data; } @Override String toString() { return "AjaxResult [retcode=" + retcode + ",retmsg=" + retmsg + ",data=" + data + "]"; } } 七、springboot启动类 com.sam.project.mvc; javax.sql.DataSource; org.apache.ibatis.session.SqlSessionFactory; org.apache.log4j.Logger; org.mybatis.spring.SqlSessionFactoryBean; org.mybatis.spring.annotation.MapperScan; org.springframework.boot.SpringApplication; org.springframework.boot.autoconfigure.EnableAutoConfiguration; org.springframework.boot.autoconfigure.SpringBootApplication; org.springframework.boot.builder.SpringApplicationBuilder; org.springframework.boot.context.properties.ConfigurationProperties; org.springframework.boot.context.web.SpringBootServletInitializer; org.springframework.context.annotation.Bean; org.springframework.context.annotation.ComponentScan; org.springframework.core.io.support.PathMatchingResourcePatternResolver; org.springframework.jdbc.datasource.DataSourceTransactionManager; org.springframework.transaction.PlatformTransactionManager; @EnableAutoConfiguration @SpringBootApplication @ComponentScan @MapperScan("com.sam.project.mvc.mapper") class Application extends SpringBootServletInitializer { static Logger logger = Logger.getLogger(Application.); //DataSource配置 @Bean @ConfigurationProperties(prefix="spring.datasource") DataSource dataSource() { org.apache.tomcat.jdbc.pool.DataSource(); } 提供SqlSeesion @Bean public SqlSessionFactory sqlSessionFactoryBean() throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource()); PathMatchingResourcePatternResolver resolver = PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:/mapper/*.xml")); sqlSessionFactoryBean.getObject(); } @Bean PlatformTransactionManager transactionManager() { DataSourceTransactionManager(dataSource()); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.); } * Main Start */ static main(String[] args) { SpringApplication.run(Application.,args); logger.info("============= SpringBoot Start Success ============="); } } ? 八、在WEB-INF下新建templates文件夹并在该文件夹下新建index.jsp文件 <%@ page language="java contentTypetext/html; charset=UTF-8 pageEncodingUTF-8"%> DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> htmlheadmeta http-equiv="Content-Type" content="text/html; charset=UTF-8"title>你好body ${title } > 九、启动Application类 启动成功,控制台会显示如下内容 ? 十、在浏览器输入localhost:8080/hello ? ?上述就是springboot+springmvc+mybatis整合实例 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |