1.基础架构图:
2.主方法
/** * Hello world! *@SpringBootApplication集成了下面的注解 * @ComponentScan 扫包 * @EnableAutoConfiguration 自动配置 * @Configuration 表示这个是一个配置类 */ @SpringBootApplication @MapperScan("cn.itsource.mapper")//扫描Mapper包 @EnableTransactionManagement//开启事务管理器,然后在每个service类上要写事务注解 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
3.application.properties的配置
#视图解析器 spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp #连接池 spring.datasource.password=root spring.datasource.username=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql:///crm #可以指定使用DruidDataSource连接池,如果其他连接池,换了即可 #spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #将mapper的xml映射给Mapper,在main主方法上打注解@mapperScan mybatis.mapper-locations=classpath:cn/itsource/mapper/*.xml #选择什么样的工作模式的properties,比如改变端口等配置,选择的是application-dev.properties的配置 #spring.profiles.active=dev #分页配置 pagehelper.helperDialect=mysql #为了使用输入页数为负或者超出最大页时候使页数为最小或最大值 pagehelper.reasonable=true #最小和最大的是1和最后一页 pagehelper.supportMethodsArguments=true #统计总数 pagehelper.params=count=countSql
4.application-dev.properties或者test的配置
server.port=8888
5.controller的配置
@Controller public class MybatisController { @Autowired private IEmployeeService employeeService; @RequestMapping("selectAll") @ResponseBody public List<Employee> selectAll() { return employeeService.selectAll(); } @RequestMapping("index") public String index(Model model) { model.addAttribute("msg","来了老弟"); return "index"; } @RequestMapping("selectAllForPage") @ResponseBody public List<Employee> selectAllForPage() { PageHelper.startPage(1, 6);//因为配置了,所以直接调用,分页插件的方法对紧随其后第一个sql语句有效.第1页,一页6个. return employeeService.selectAll(); } }
5.Mapper.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="cn.itsource.mapper.EmployeeMapper" > <resultMap id="BaseResultMap" type="cn.itsource.domain.Employee" > <id column="id" property="id" /> <result column="username" property="username" /> <result column="real_name" property="realName" /> <result column="password" property="password" /> </resultMap> <select id="selectAll" resultMap="BaseResultMap" > select id, username, real_name,password from t_employee </select> </mapper>
6.Service的实现类
@Service @Transactional//因为主方法开启了自动创建事务,所以打上注解就可以了 public class EmployeeServiceImpl implements IEmployeeService { @Autowired private EmployeeMapper employeeMapper; @Override public List<Employee> selectAll() { return employeeMapper.selectAll(); } }
7.pom包
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <!-- 依赖配置--> <!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ........ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- servlet 依赖. --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!-- tomcat 的支持. --> <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> </dependency> <!-- mysql 数据库驱动. --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.19</version> </dependency> <!--freemarker--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <!--测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--github的分页助手--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> </dependencies>