spring boot+mybatis 整合小练习

spring boot整合mybatis Demo

  • 项目准备:
  • 环境:idea,jdk1.8,maven3.x,springboot,mybatis,postman,MySQL数据库

创建工程

  • 步骤如下

spring boot+mybatis 整合小练习_第1张图片
spring boot+mybatis 整合小练习_第2张图片
spring boot+mybatis 整合小练习_第3张图片
导入相关依赖

<parent>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-parentartifactId>
    <version>2.2.6.RELEASEversion>
parent>

<dependencies>
    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    
    <dependency>
        <groupId>org.mybatis.spring.bootgroupId>
        <artifactId>mybatis-spring-boot-starterartifactId>
        <version>2.0.1version>
    dependency>
    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>5.1.38version>
    dependency>
    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
        <version>1.0.9version>
    dependency>
    
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-testartifactId>
    dependency>
    <dependency>
        <groupId>org.apache.commonsgroupId>
        <artifactId>commons-lang3artifactId>
        <version>3.0version>
    dependency>

    
    <dependency>
        <groupId>org.projectlombokgroupId>
        <artifactId>lombokartifactId>
    dependency>
dependencies>

编写配置文件

  • application.properties(本次采用的是properties文件作为配置文件)
// 加载数据库
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/vuejsdemo
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
// 配置别名
mybatis.type-aliases-package=com.usian.pojo

编写启动类

  • 用于spring boot 项目的启动
@SpringBootApplication
@MapperScan("com.usian.dao")// 扫描接口所在的包
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

编写业务代码

  • 本次目标:
    根据id查询指定用户
    添加用户
  • 项目分层:pojo,controller,service,service.impl,dao
  • pojo
@Data// lombok插件中的注解 使用后自动生成get  set toString 方法
public class User {
    private Integer id;
    private Integer age;
    private String username;
    private String pwd;
    private String email;
    private String sex;
}

根据id查询指定用户:

  • controller
@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;

    /**
     * 根据id查找用户信息
     *
     * @param id
     * @return
     */
    @RequestMapping("findUserById")
    public User findUserById(Integer id) {
        return userService.findUserById(id);
    }
  • service
public interface UserService {
    User findUserById(Integer id);
  • service.impl
@Service
@Transactional
@SuppressWarnings("all") // 压制警告 
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;

    @Override
    public User findUserById(Integer id) {
        return userDao.findUserById(id);
    }
  • dao
public interface UserDao {
    User findUserById(Integer id);
  • dao(xml)


<mapper namespace="com.usian.dao.UserDao">
    
    <select id="findUserById" parameterType="int" resultType="user">
        select * from user where id = #{id}
    select>
mapper>

编写测试类

  • 项目中test文件夹中编写测试文件,测试项目是否可以正常启动,分层与项目分层相同com.usian
@RunWith(SpringJUnit4ClassRunner.class)// 讲Junit和springboot做整合
@SpringBootTest(classes = App.class) // 表明当前类是一个测试类 依赖于当前项目的启动类
public class TestDemo {
    @Autowired
    private UserService userService;

    @Test
    public void test(){
        User user = userService.findUserById(2);
        System.out.println(user);
    }
}
  • 启动测试类

spring boot+mybatis 整合小练习_第4张图片
添加用户:

  • controller
/**
* 添加用户
* @param user
* @return
*/
@RequestMapping("addUser")
public String addUser(User user) {
   userService.addUser(user);
   return "add success";
}
  • service
void addUser(User user);
  • service.impl
@Override
public void addUser(User user) {
    userDao.addUser(user);
}
  • dao
void addUser(User user);
  • dao(xml)

<insert id="addUser" parameterType="user">
    insert into user values(null,#{age},#{username},#{pwd},#{email},#{sex})
insert>

启动项目查看结果

  • 运行启动类,App.java
  • 使用postman工具进行查看结果
  • 根据id查找指定用户:

spring boot+mybatis 整合小练习_第5张图片


spring boot+mybatis 整合小练习_第6张图片

  • 添加用户:
    spring boot+mybatis 整合小练习_第7张图片
    spring boot+mybatis 整合小练习_第8张图片

小结

  • 由于使用的是spring boot,原则上尽量少使用xml文件配置相关基本设置等,所以在启动类上要加上注解@MapperScan("mapper包名全路径")扫描接口所在的包
  • 测试类中要加上注解@RunWith(SpringJUnit4ClassRunner.class),整合Junit和springboot
  • 测试类中要加上注解@SpringBootTest(classes = App.class) ,表明当前类是一个测试类 依赖于当前项目的启动类
  • 由于使用了mybatis技术,所以要在配置文件中配置数据库相关信息,比如:加载驱动,url,username,password等。
  • 使用Lombok插件,编写实体类时,可以使用@Data注解,此注解可自动生成 get set toString()方法

你可能感兴趣的:(#,spring,boot学习笔记,spring,mysql,mybatis,java)