最近想要学习一下java的web框架,听说springboot搭建起来要简单很多,且网上有很多教程.所以就学习一下如何搭建现在把碰到的问题写一下给自己做一下记录.
1.创建项目
我这里使用idea.再勾选maven依赖那个地方可以选择自己想要的依赖库.但是后面也可以在pom里面配,所以我直接就只选了springweb.
之后下一步就完成了创建.
2.创建controller文件
现在在 src.main.java.你的项目创建controller文件夹和controller文件
在controller里面写下一个hello测试方法
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class BlogController {
@ResponseBody
@RequestMapping(value = "/hello")
public String hello() {
return "Hello World";
}
}
打开浏览器输入如下地址发现工程已经基本搭建完毕.
是不是很简单呢.
3.配置mybatis的相关内容
先去application里面配置数据库等相关的东西
spring:
datasource:
name: test
url: jdbc:mysql://127.0.0.1:3306/task?useCharactorEncoding=utf-8&serverTimezone=UTC&useSSL=false
username: root
password: root123
#driver-class-name: com.mysql.jdbc.Driver #导致异常 Loading class `com.mysql.jdbc.Driver'. This is deprecated. 使用新驱动
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
type-aliases-package: com.ocean.pojo
#config-location: classpath:mybatis/mybatis-config.xml #获取映射包的配置文件
mapper-locations: classpath:mapping/*Mapper.xml
之后再pom里面引入以下依赖,(我这里还使用generator生成代码所以会多一些依赖)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
在bulid 的 plugin里面配置generator的相关配置
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
</plugin>
4.generator的相关配置
在resources下面添加generator文件夹和generatorConfig.xml文件.文件结构如图
然后再xml中写入如下配置内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
<classPathEntry location="D:\project\SpringBoot--Learning-master\mysql-connector-java-5.1.25-bin.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/testTable" userId="root" password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.task.demo.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.task.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
记得把数据库驱动包放在你写的位置
然后edit configuration 添加配置
此时运行generator 可以获取到生成的代码
注意!!!同一张表一定不要运行多次,因为mapper的映射文件中会生成多次的代码,导致报错,切记
文件结构如下
5.在主程序里面添加扫描注解
打开类DemoApplication.java,这个是springboot的启动类。我们需要添加点东西:
到这里基本上搭建完成了.
6.完成service层来完整项目结构
现在在service层写接口来完整项目结构
UserService.java
package com.winter.service;
import com.winter.model.User;
import java.util.List;
/**
* Created by Administrator on 2017/8/16.
*/
public interface UserService {
int addUser(User user);
List<User> findAllUser(int pageNum, int pageSize);
}
UserServiceImpl.java
package com.winter.service.impl;
import com.github.pagehelper.PageHelper;
import com.winter.mapper.UserMapper;
import com.winter.model.User;
import com.winter.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Created by Administrator on 2017/8/16.
*/
@Service(value = "userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;//这里会报错,但是并不会影响
@Override
public int addUser(User user) {
return userMapper.insertSelective(user);
}
/*
* 这个方法中用到了我们开头配置依赖的分页插件pagehelper
* 很简单,只需要在service层传入参数,然后将参数传递给一个插件的一个静态方法即可;
* pageNum 开始页数
* pageSize 每页显示的数据条数
* */
@Override
public List<User> findAllUser(int pageNum, int pageSize) {
//将参数传给这个方法就可以实现物理分页了,非常简单。
PageHelper.startPage(pageNum, pageSize);
return userMapper.selectAllUser();
}
}
如果没有service包和service下面的文件这里可以自己创建并写入
7.在controller下写入测试方法完成数据交互
再在TestController.java下面写入
@Controller
public class TestController {
@Autowired
private UserServiceImpl userServiceImpl;
@ResponseBody
@RequestMapping(value = "/sql")
public String sqltest() {
User userTest = userServiceImpl.selectByPrimaryKey(1);
return userTest ;
}
}
这样就会发现自己能拿到数据库的数据了.
到这里就全部完成了.
最后附上一个我看到的教程