第二篇,集成mybaits,简单操作数据库
安装mybaits依赖,配置规则
打开上一篇中创建的项目文件。
首先在pom文件中添加mybaits依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
更新安装依赖。
然后在配置文件中配置mybaits规则:
application.yml
# 配置mybatis规则
mybatis:
# config-location: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: false
搭建mybaits相关目录结构
对应的mapper映射xml文件放在reource文件下新建的mapper文件目录下:
根据大牛们的说法,mybaits最好是xml映射和注解两种方式混用。简单的sql直接写在注解里,复杂的sql写到xml中。这里也把两种方式都用一下。
先用注解的方式运行一句简单的sql。
在这之前,我们先创建几个文件夹,如图:
01 在bean目录下创建实体类Dept:
Dept.java
package com.example.demo.bean;
import lombok.Data;
@Data
public class Dept {
public String dept_id;
public String dept_name;
public String email;
}
02 创建mapper文件:
DeptMapper.java
package com.example.demo.mapper;
import com.example.demo.bean.Dept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface DeptMapper {
//注解方式,直接写sql文
@Select("SELECT `dept_id`,`dept_name`, `email`FROM `sys_dept`")
public List<Dept> getDept();
}
03 创建service:
DeptService.java
package com.example.demo.services;
import com.example.demo.bean.Dept;
import com.example.demo.mapper.DeptMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DeptService {
@Autowired
DeptMapper deptMapper;
public List<Dept> getDept(){
return deptMapper.getDept();
}
}
做完这三步的准备,就可以在controller中开始测试了。
测试注解方式的mybaits操作数据库
在TestController文件中添加响应代码,如上图。
TestController.java
package com.example.demo.controller;
import com.example.demo.bean.Dept;
import com.example.demo.services.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class TestController {
@RequestMapping(value="/Hello",method = RequestMethod.GET)
public String Hello(String pra){
return "Hello world !"+pra;
}
@Autowired
DeptService deptService;
//测试注解方式操作数据库
@ResponseBody
@GetMapping("/getDept")
public List<Dept> getDept(){
return deptService.getDept();
}
}
启动运行项目。
在浏览器地址栏中输入:http://localhost:8080/getDept
响应如图:
获取到的数据,即为从数据库ds1中的表sys_dept中的数据。
改造并测试Xml方式操作数据库
在上面的基础上,再试一试xml的方式。
稍作改造。
01、 DeptMapper.java文件中新增一句代码:
DeptService.java 中也做类似处理:
02、resouce->mapper目录下创建映射xml文件:DeptMapper.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.example.demo.mapper.DeptMapper">
<select id="getDeptById" resultType="com.example.demo.bean.Dept">
SELECT `dept_id`,`dept_name`, `email` FROM `sys_dept` where `dept_id`=#{id}
</select>
</mapper>
03、测试
TestController.java 文件中新增测试接口:
//XML方式
@ResponseBody
@RequestMapping("/getDeptById")
public Dept getTheDept(@RequestParam("id") String id){
return deptService.getDeptById(id);
}
启动运行项目。
浏览器地址栏中输入:http://localhost:8080/getDeptById?id=101
响应如图:
最后
本篇就到这里。下一篇,说一说怎么配置多数据源,以及druid的集成和简单使用。