Springboot集成MyBatis进行开发

发布时间 2023-04-12 16:04:01作者: 尔尔er
  1. 引入相关的依赖
 <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency><!--引⼊springboot的web⽀持-->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency><!--引入MySQL的依赖-->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
  </dependency>
  <!--引入mybatis整合springboot所使用的依赖-->
  <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.2</version>
  </dependency>
  <!--springboot连接数据库的驱动jar-->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.12</version>
  </dependency>
</dependencies>

  2.配置application.yml

# spring整合MyBatis配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource  #连接所使用的数据源
    driver-class-name: com.mysql.jdbc.Driver #所使用的驱动类
    url: jdbc:mysql://locahost:3306/mybatis1?charsetEncoding=UTF-8
    username: root
    password: root
    
# 配置mapper文件所在的包
mybatis:
  mapper-locations: classpath:com/wd/mapper/*.xml

       application.java

//声明当前文件是一个springboot应用的入口类
@SpringBootApplication    //修饰范围:用在类上 标识是springboot的入口类 这个注释只能出现一次
@MapperScan("com.wd.dao") //用来指定Dao接口所在的位置
public class Application {
        public static void main(String[] args) {
            //运行springboot的核心方式
            SpringApplication.run(Application.class,args);
        }
}
  3.建表
    在数据库中创建相应的表
  4.键实体
    在.java文件中引入数据库表中的字段,创建无参,有参构造函数和getter、setter、toString方法。
  5.开发dao mapper文件
    Userdao.java:定义实现的方法
public interface Userdao {
    List<user> findAllUser();
    user findUserById(@Param("id") int id);
}

  mapper文件:编写方法的实现

<mapper namespace="com.wd.dao.Userdao">
    <select id="findAllUser" resultType="com.wd.entity.user">
        select * from t_user
    </select><select id="findUserById" resultType="com.wd.entity.user">
        select * from t_user where id=#{id}
    </select>
</mapper>
  6.开发service接口 开发service实现
    service接口:定义要实现的业务功能接口
public interface UserService {
    List<user> findAllUser();
    user findUserById(int id);
}

  serviceImpl:service接口的实现类,实现接口

@Service  //代表在工厂中创建有个service对象
@Transactional //当前类是支持事务的
public class UserServiceImpl implements UserService{
    @Resource
    private Userdao userDao;
​
    @Override
    public List<user> findAllUser() {
        return userDao.findAllUser();
    }
​
    @Override
    public user findUserById(int id) {
        return userDao.findUserById(id);
    }
}
  7.开发controller
@RestController
@RequestMapping("/user")
public class usercontroller {
    @Resource
    private UserService userService;
​
    @RequestMapping("/users")
    public List<user>  findUsers(){
        System.out.println("************");
        return userService.findAllUser();
    }
​
    /**
     * 查询单个用户方法
     * @return:单个用户对象
     * @PathVaribale:代表接收路径中所包含的参数
     */
    @RequestMapping("/users/{id}")
    public user findUserById(@PathVariable("id") int id){
        System.out.println("id="+ id);
        return userService.findUserById(id);
    }
}
  8.开发声明
    1) @RestController:用在类中,声明当前是一个控制器,并且类种所有的方 法返回都是json,RestController=@Controller+@ResponseBody二者结合。
    2)@RequestMapper("/user"):可以用在类上,也可以用在方法上;用在类上表示在当前类中所有的方法添加路径,用在方法上代表给当前方法添加路径。
    3)以下代码表示:接收RequestMapping中所包含的参数
 
@RequestMapping("/users/{id}") public user findUserById(@PathVariable("id") int id){ ​ }