版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/85781339
1.新建maven项目:
2.导入依赖:
<!-- 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>
<scope>provided</scope>
</dependency>
<!-- FreeeMarker模板引擎所需依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- springboot测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- jdbc依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- spring-boot mybatis依赖:注意:不要使用1.0.0版本,因为还不支持拦截器插件,我这里 1.1.1 目前可用 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
温馨小提示:由于我这里是新建的module,因此我的springboot依赖放在了外面导入,你们根据自己的项目来就好
<!-- dependencyManagement-解决单继承问题 --> <dependencyManagement> <dependencies> <!--springboot版本管理--><!-- SpringBoot所需依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.0.5.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
3.mysql连接配置
4.MyBatis相关配置 -- 这里是PageHelper分页插件
@Configuration //相当于我们建了applicationContext-xxx.xml <beans></beans>
public class MyBatisConfiguration {
@Bean
public PageHelper pageHelper() {
System.out.println("MyBatisConfiguration.pageHelper()");
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}
5.编写启动类
@SpringBootApplication
//@MapperScan("com.zhengqing.springboot.*.mapper") //FIXME : * 用在多模块项目
@MapperScan("com.zhengqing.springboot.mapper") //@MapperScan:扫描该包下的接口
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class);
}
}
6.编写代码 domain实体类,query层,service层这些根据自己的业务来,就不多说了,
主要说说mapper映射 分xml版和注解版 如下
public interface UserMapper {
void save(User user); //TODO xml版
List<User> queryPage(UserQuery query);
// FIXME 注解版 【注意:如果使用这个 就不写beanMapper.xml相关代码!!】
/* @Insert("insert into t_user(name) values(#{name})")
@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
void save(User user);*/
}
beanMapper.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.zhengqing.springboot.mapper.UserMapper">
<!-- useGeneratedKeys:true标识返回主键 -->
<insert id="save" parameterType="User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into t_user(name) values(#{name})
</insert>
<select id="queryPage" resultType="User" parameterType="UserQuery">
select * from t_user
</select>
</mapper>
温馨小提示: 写beanMapper.xml的时候注意分层结构要对应 不然最后接口和映射文件编译不到同一个路径下
最后就可以来个简单的测试了~
@RunWith(SpringRunner.class)
//标识这是一个spring测试,指定入口【从哪儿加载spring配置文件】和应用类型,它就会扫描入口类子子孙孙包的bean
@SpringBootTest(classes = WebApplication.class)
public class IUserServiceTest {
@Autowired
private IUserService userService;
@Test //MyBatis的crud ...
public void test01() throws Exception{
User user = new User("测试数据-是否可以返回主键");
System.out.println(user);
userService.save(user);
System.out.println(user);
}
@Test //分页
public void test02() throws Exception{
//com.github.pagehelper.Page --->PageList(currentPage,pageSizs,totalRecords,totalpages,Data)
Page<User> list = (Page) userService.queryPage(new UserQuery());
System.out.println(list.getClass());
System.out.println("总数据条数:"+list.getTotal());
System.out.println("总页数:"+list.getPages());
System.out.println("当前页:"+list.getPageNum());
System.out.println("每一页数据条数:"+list.getPageSize());
for (User user : list) {
System.out.println(user);
}
}
}