idea+springboot+freemark+注解版mybatis
项目目录
利用idea创建一个springboot
创建之后pom
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.dels</groupId>
<artifactId>dels</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>dels</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<skipTests>true</skipTests>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<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>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
<!-- spring security依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
</project>
配置application.properties
freemarker
freemarker静态资源配置,设定ftl文件路径
spring.freemarker.tempalte-loader-path=classpath:/templates
关闭缓存,及时刷新,上线生产环境需要修改为true
spring.freemarker.cache=false
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
spring.freemarker.request-context-attribute=request
spring.freemarker.suffix=.ftl
mybatis
#数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
扩展application.properties
扩展配置文件名为application-mybatis.properties
在application.properties中添加:spring.profiles.active=mybatis
代码
mapper
package com.example.dels.user.mapper;
import com.example.dels.user.eneity.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface UserMapper {
/**
* 分页查询
* @param pageNo
* @param pageSize
* @return
*/
@Select("SELECT * FROM user ORDER BY id DESC LIMIT #{pageNo} ,#{pageSize}")
@Results({
@Result(property = "roleCode",column = "role_code"),
@Result(property = "createTime",column = "create_time"),
@Result(property = "lastLoginTime",column = "last_login_time"),
@Result(property = "countTime",column = "count_time")
})
List<User> findAll(@Param("pageNo") Integer pageNo, @Param("pageSize") Integer pageSize);
/**
* 根据id查询用户
* @param id
* @return
*/
@Select("SELECT * FROM user WHERE id=#{id}")
User findUserById(String id);
/**
* 插入用户
* @param user
*/
@SelectKey(keyProperty = "user.id",resultType = String.class, before = true,
statement = "select replace(uuid(), '-', '')")
@Options(keyProperty = "user.id", useGeneratedKeys = true)
@Insert("INSERT INTO user (id,userName,`password`,`code`,role_id,phone,create_time,last_login_time,count_time) " +
"VALUES(#{user.id},#{user.userName},#{user.password},#{user.code},#{user.roleId},#{user.phone},#{user.createTime},#{user.lastLoginTime},#{user.countTime})")
void insertUser(@Param("user")User user);
/**
* 根据code查询用户
* @param code
* @return
*/
@Select("SELECT * FROM user WHERE code=#{code}")
@Results({
@Result(property = "roleCode",column = "role_code"),
@Result(property = "createTime",column = "create_time"),
@Result(property = "lastLoginTime",column = "last_login_time"),
@Result(property = "countTime",column = "count_time")
})
List<User> findUserByCode(@Param("code") String code);
/**
* 根据字段查询用户信息
*/
@Select({"<script>",
"SELECT * FROM user",
"where 1=1",
"<when test='id !=null'>",
"and id=#{id}",
"</when>",
"<when test='code !=null'>",
"and code=#{code}",
"</when>",
"ORDER BY id " ,
"<when test='order !=null'>",
"desc",
"</when>",
" LIMIT 0,1",
"</script>"})
List<User> findUserByAll(@Param("id")String id,@Param("code")String code,@Param("order")String order);
/**
* 测试
*/
@SelectProvider(type = SqlString.class,method = "getFindSql")
List<User> ceshi();
/**
* ceshi 1
*/
@SelectProvider(type = SqlString.class,method ="getUser" )
List<User> ceshi001(User user);
}