springboot整合ssm
中国加油,武汉加油
项目准备
- 创建一个springboot项目 nz1904-springboot-03-ssm
- 加入Druid依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency>
- 根据实体类自己创建数据库
1. 案例
1.1 写实体类
package com.wpj.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
private static final long serialVersionUID = -1600505716759452386L;
private int id;
private String name;
private String pwd;
}
1.2 写mapper接口
package com.wpj.mapper;
import com.wpj.pojo.User;
/**
* 用户dao
*/
public interface UserMapper {
/**
* 通过id找到User
* @param id
* @return
*/
User findUserById(Integer id);
}
1.3 写service及其impl
package com.wpj.service;
import com.wpj.pojo.User;
/**
* 用户service
*/
public interface IUserService {
/**
* 通过id找到User
* @param id
* @return
*/
User findUserById(Integer id) throws Exception;
}
package com.wpj.service.impl;
import com.wpj.mapper.UserMapper;
import com.wpj.pojo.User;
import com.wpj.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public User findUserById(Integer id) {
return userMapper.findUserById(id);
}
}
1.4 写返回类型
package com.wpj.result;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseResult {
// 给前端返回状态
private int status; // 0 请求失败, 1 请求成功
// 返回错误原因
private String errorMsg;
}
package com.wpj.result;
import com.wpj.pojo.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserResult extends BaseResult {
private User user;
private List<User> userList;
}
1.5 写controller
package com.wpj.controller;
import com.wpj.pojo.User;
import com.wpj.result.UserResult;
import com.wpj.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 用户controller
*/
@RestController
public class UserController {
@Autowired
private IUserService iUserService;
@RequestMapping("/findUserById")
public UserResult findUserById(int id){
UserResult userResult = new UserResult();
userResult.setStatus(0); // 默认失败
try {
User user = iUserService.findUserById(id);
userResult.setStatus(1); // 成功
userResult.setUser(user);
} catch (Exception e) {
// 请求失败
userResult.setErrorMsg("通过id获取用户信息失败。" + e.getMessage());
}
return userResult;
}
}
1.6 写mapper.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.wpj.mapper.UserMapper">
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>
</mapper>
1.7 写config
package com.wpj.config;
import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.annotation.MapperScans;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.ComponentScan;
@SpringBootConfiguration // 声明为配置文件
@ComponentScan(basePackages = "com.wpj") // spring配置扫描
@MapperScan(basePackages = "com.wpj.mapper") // mapper配置扫描
public class AppConfig {
}
1.8 写配置文件
# 给java实体取别名
mybatis.type-aliases-package=com.wpj.pojo
# 给mapper.xml文件所在的位置
mybatis.mapper-locations=classpath:mapper/*.xml
# 连接数据库的配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///nz1904-ssm
spring.datasource.username=root
spring.datasource.password=123456
# 设置链接池的类型
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 给应用取名字
spring.application.name=springboot-ssm
1.9 启动主启动类
package com.wpj;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}