菜鸟——springboot+mybatis+maven
网上找了很多资料,学习如何搭建springboot,由于刚刚接触springboot,不是很熟练,通过参考网上别人搭建的例子,自己也搭建了一个简单的springboot+mybaits+maven
网上说springboot很简单,可是很多人都掉了很多次坑,但是说破了什么都不是~跟着我的步骤,你也很快可以迅速搭建一个框架啦~
spring boot 主要是专注于后端的东西,最后能放回一个json数据算成功
如果使用spring boot搭建框架,最好不要用jsp来作为视图的展示,spring boot有内嵌的thymeleaf模板引擎(这东西正在了解中),所以最好用thymeleaf来作为前端页面展示,thymeleaf可以完全替代jsp
一、项目结构
Application必须跟其他包在同一级,Application跟其他包放在springboottest目录下(springboottest记得要跟groupid一样?不大确定)
二、maven
具体安装maven,请结合上一篇文章——springboot搭建Hello World
三、启动类
package springboottest; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Created by JC on 2017/2/21. * 启动文件 */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
四、controller
package springboottest.controller; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springboottest.entity.User; import springboottest.service.UserService; import javax.annotation.Resource; import java.util.List; /** * Created by JC on 2017/2/22. */ @RestController @RequestMapping(value = "/user") public class UserController { @Resource(name = "userService") private UserService userService; @RequestMapping(value = "/findAll") public ResponseEntity<List<User>> findAll(){ return new ResponseEntity( userService.findAll(), HttpStatus.OK); } }
五、service
package springboottest.service; import org.omg.CORBA.Object; import springboottest.entity.User; import java.util.List; /** * Created by JC on 2017/2/22. */ public interface UserService { public List<Object> findAll(); }
package springboottest.service.impl; import org.omg.CORBA.Object; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import springboottest.dao.DaoSupport; import springboottest.entity.User; import springboottest.service.UserService; import javax.annotation.Resource; import java.util.List; /** * Created by JC on 2017/2/22. */ @Service("userService") public class UserServiceImpl implements UserService { @Resource(name = "daoSupport") private DaoSupport dao; @Override public List<Object> findAll() { return dao.findAll("UserMapper"); } }
六、dao
package springboottest.dao; import org.omg.CORBA.Object; import springboottest.entity.User; import java.util.List; /** * Created by JC on 2017/2/22. */ public interface Dao { /** * 查找全部user */ public List<Object> findAll(String str); }
package springboottest.dao; import org.mybatis.spring.SqlSessionTemplate; import org.omg.CORBA.Object; import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.util.List; /** * Created by JC on 2017/2/22. */ @Repository("daoSupport") public class DaoSupport implements Dao{ @Resource(name = "sqlSessionTemplate") private SqlSessionTemplate sqlSessionTemplate; /** * 查询全部 * @param str * @return */ @Override public List<Object> findAll(String str) { return sqlSessionTemplate.selectList(str+".findAll"); } }
七、entity
package springboottest.entity; /** * Created by JC on 2017/2/22. */ public class User { private String F_ID; private String F_USERNAME; private String F_PASSWORD; public String getF_ID() { return F_ID; } public void setF_ID(String f_ID) { F_ID = f_ID; } public String getF_USERNAME() { return F_USERNAME; } public void setF_USERNAME(String f_USERNAME) { F_USERNAME = f_USERNAME; } public String getF_PASSWORD() { return F_PASSWORD; } public void setF_PASSWORD(String f_PASSWORD) { F_PASSWORD = f_PASSWORD; } }
八、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="UserMapper"> <!--表名 --> <sql id="tableName"> t_user </sql> <!-- 字段 --> <sql id="Field"> F_ID, F_USERNAME, F_PASSWORD </sql> <!-- 字段值 --> <sql id="FieldValue"> #{F_ID}, #{F_USERNAME}, #{F_PASSWORD} </sql> <!-- 列表(全部) --> <select id="findAll" resultType="springboottest.entity.User"> select <include refid="Field"></include> from <include refid="tableName"></include> </select> </mapper>
九、pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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>springboottest</groupId> <artifactId>springboottest</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> <relativePath/> </parent> <dependencies> <!--springboot的基础包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--mysql的依赖包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--加入mybatis-spring-boot-stater--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> </dependencies> </project>
十、application.yml
# Server settings server: port: 8080 address: localhost # DATASOURCE spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&charaterEncoding=utf-8 username: root password: root # Spring profiles spring: http: encoding: charset: utf-8 enabled: true force: true # Mybatis mybatis: mapper-locations: classpath:/mybatis/*.xml type-aliases-package: springboottest.entity
十一、数据库
/* SQLyog v10.2 MySQL - 5.1.62-community : Database - test ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `test`; /*Table structure for table `t_user` */ DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `F_ID` int(11) NOT NULL, `F_USERNAME` varchar(200) DEFAULT NULL, `F_PASSWORD` varchar(200) DEFAULT NULL, PRIMARY KEY (`F_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*Data for the table `t_user` */ insert into `t_user`(`F_ID`,`F_USERNAME`,`F_PASSWORD`) values (1,'小李','123'),(2,'小张','456'); /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
十二、访问,结果返回json数据
右击Application.java-->Run'Application' 启动启动类
访问路径:不需要加项目名字