学完spring和springmvc进阶到springboot
为什么使用springboot
SpringBoot 是基于Spring 的基础上产生的,但是Spring复杂、繁琐的XML配置方式配置使得开发人员在实际使用过程中变得非常痛苦,尤其是与其他第三方工具进行整合时,比如Mybatis等就更会使得配置文件变得异常复杂和重复,SpringBoot实现了自动装配
写出第一个springboot项目就知道它有多好用了
新建项目:和以往不同不在建maven项目直接创建springboot项目(也可以从官网建在下载下来)
第一步:
勾选web
建立完成,多余的文件可以删掉
maven依赖:
<dependencies>
<!--Web依赖: tomcat ,dispatcherServlet.xml-->
<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>
</dependencies>
<!--打jar包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
第二部:创建一个hello程序
*注:这是启动类所有 所有mapper service controller要和启动类在同一包下不然会扫描不到
第二部: 编写一个controller
@RestController
public class Hello {
//接口: http://localhost:8080/hello
@RequestMapping("/hello")
public String hello(){
return "hello";
}
}
@RestController代表不走视图解析器只返回字符串
直接访问localhost:8080/hello就会出现字符串 hello
在springboot中不再需要一些繁琐的配置如:web.xml 或者将写好的类注入到spring
全部由springboot自动装配,其中Tomacat已被内嵌各种maven配置都已经存在需要使开启对应的starter就可以 ---SpringBoot如此简单
SpringBoot整合Mybatis
maven依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
在数据库中新建一张表:User
创建pojo实体类:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private String pwd;
}
UserMapper:
import java.util.List; //这个注解表示了这是一个mybatis的mapper类 @Mapper @Repository //dao层注解 public interface UserMapper { List<User> queryUserList(); User queryUserById(int id); int addUser(User user); int updateUser(User user); int deleteUser(int id); }
在resources下创建UserMapper.xml
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="com.wu.mapper.UserMapper"> <select id="queryUserList" resultType="User"> select * from user </select> <select id="queryUserById" resultType="User"> select * from where id=#{id} </select> <insert id="addUser" parameterType="User"> insert into user (id,name,pwd) values (#{id},#{name},#{pwd}) </insert> <update id="updateUser" parameterType="User"> update user set name=#{name}, pwd=#{pwd} where id = #{id} </update> <delete id="deleteUser" parameterType="int"> delete from user where id=#{id} </delete> </mapper>
在springboot配置中连接数据库配置数据源
application.properties 或者 application.yaml都可以
spring.datasource.username=自己数据库名 spring.datasource.password=密码 spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.jdbc.Driver #整合mybatis mybatis.type-aliases-package=com.wu.pojo mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
如果msq版本是8以上报错要添加时区配置
如果msq版本是5点几上报错去maven配置修改版本不然会连接不上
最后编写controller: 增删改查
@RestController
public class UserController {
@Autowired
UserMapper userMapper;
@GetMapping("/query")
public List<User> queryUserList(){
List<User> userList = userMapper.queryUserList();
return userList;
}
@GetMapping("/delete")
public String ById(){
int i = userMapper.deleteUser(8);
return "ok";
}
@GetMapping("/update")
public String update(){
userMapper.updateUser(new User(8,"旻旻","132"));
return "ok";
}
@GetMapping("/add")
public String add(){
userMapper.addUser(new User(8,"旻旻","002"));
return "ok";
}
}
再连接数据库就可以操作数据了