昨天把下周的代码都码完了所以近期时间比较剩余,因此今天我们来学习搭建一个简单的基于springboot的SSM(Spring + SpringMVC + Mybatis)的maven项目,使用的数据库为Mysql。好了废话不多说。开始搞起。
1 创建开关SpringBootApplication
为了创建快速。我们使用idea自带的创建SpringBoot来创建结构,当然创建普通的Web项目也是可以的。
按照图示进行选择
需要说明的是SpringBoot依赖的JDK版本为1.8及以上。
好了 我们的初始项目算是创建完成了。项目结构如下图所示,其中 SpringbootdemoApplication就是我们的开关文件
其实现在一个最简单的springboot项目我们已经搭建完成了。什么?不相信?,你可以运行一下SpringbootdemoApplication这个文件呀。会报你未配置dataSource,我们如下图所示进行一下配置即可完成一个最简单的springboot项目进行跑通
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql
OK 项目跑起来了。最简单的springboot项目搭建完成。结束了?不不不 我们要搭建SSM项目呀。
2 目录结构简单介绍
在给同学们演示如何将ssm融入到项目中之前。先和各位同学讲一下目录结构方便各位同学理解。
- Java:这个就不用多说了。放我们写的java文件的
- resources:SpringBoot主张无Xml配置,但是还是需要一些最基础的信息配置的,例如Sql账号密码的设置,在简洁你的账号密码还是需要你自己配置滴,它是没办法帮你自动生成的。所以一般配置文件都是放到resources下的。
- 开关文件:SpringbootdemoApplication文件就是SpringBoot的核心开关了。
3 整合
需求:从数据库中查询出某一用户的所有信息返回给前台页面
好了,上面做了简单的声明。开始整合。还是基于开发的最基本的三层架架构进行开发。但是为了方便省略service层。
添加后的结构如下,具体解释我放在了代码的注释中
数据库如下
说明一下:博主用的阿里云的数据库所以数据是自动生成的
3.1 User
package com.conn.demo.model;
public class User {
private Integer id;
private String username;
private Integer age;
private Integer customerId;
public User() {
}
public User(Integer id, String username, Integer age, Integer customerId) {
this.id = id;
this.username = username;
this.age = age;
this.customerId = customerId;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getcustomerId() {
return customerId;
}
public void setcustomerId(Integer customerId) {
this.customerId = customerId;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", age=" + age +
", customerId=" + customerId +
'}';
}
}
3.2 Mapper接口
package com.conn.demo.mapper;
import com.conn.demo.model.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper {
User selectUserByName(String name);
}
3.3 Controller
package com.conn.demo.controller;
import com.conn.demo.mapper.UserMapper;
import com.conn.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
//证明是controller层并且返回json
@RestController
public class UserController {
//依赖注入
@Autowired
UserMapper userMapper;
@GetMapping(value = "cs")
public User cs() {
//直接调用mapper,因为我们为了方便没有Service
return userMapper.selectUserByName("罗松");
}
}
3.4 主开关SpringBootApplication
package com.example.springbootdemo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableTransactionManagement//开启事务管理
@MapperScan("com.conn.demo.mapper")//用于扫描
@ComponentScan(basePackages = {"com"})
public class SpringbootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootdemoApplication.class, args);
}
}
我们一般基于mybatis都是将sql写到xml配置文件中。现在我们来添加映射
3.5 创建Mapper映射
<?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.conn.demo.mapper.UserMapper">
<select id="selectUserByName" resultType="User">
SELECT * FROM user WHERE username = #{name}
</select>
</mapper>
3.6 重点重点,不要跑项目。需要配置application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql
#Mybatis扫描
mybatis.mapper-locations=classpath*:mapper/*.xml
#起别名。可省略写mybatis的xml中的resultType的全路径
mybatis.type-aliases-package=com.conn.demo.model
运行项目 成功!
关于一些注解以及一些路径的配置的解释都在代码中有很好的解释。相信各位同学如果细心阅读一定可以读懂并成功将项目跑通的。