小白学习 spring boot 数据访问(二)Mybatis(根据尚硅谷视频教程)

整合Mybatis

1.创建新工程

在这里插入图片描述
在这里插入图片描述

2.相关配置

在pom文件引入druid依赖
在工程新建application.yml文件
在yml配置文件引入配置代码(将文档中的文件复制到工程的yml中):
在这里插入图片描述
在这里插入图片描述
新建配置DruidConfig类

@Configuration
public class DruidConfig {
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
        return new DruidDataSource();
    }
    //配置Druid的监控

    //1、配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        Map<String,String> initParams = new HashMap<>();

        initParams.put("loginUsername","admin");
        initParams.put("loginPassword","123");
        initParams.put("allow","");
        //  initParams.put("deny","");
        bean.setInitParameters(initParams);
        return bean;
    }

    //2、配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());
        Map<String, String> initParams = new HashMap<>();
        initParams.put("exclusions", "*.js,*.css,/druid/*");
        bean.setInitParameters(initParams);
        bean.setUrlPatterns(Arrays.asList("/*"));
        return bean;
    }
}

访问 http://localhost:8080/druid ,出现如下错误:
在这里插入图片描述
我们需要引入log4j2依赖:
在这里插入图片描述
引入之后:
在这里插入图片描述
将资料里的sql文件复制到工程文件夹下:
在这里插入图片描述
在这里插入图片描述
在yml配置文件中配置如下文件路径:
在这里插入图片描述
运行工程后,发现mybatis数据库下表没有被创建,这时我们需要再配置文件中加入如下:
在这里插入图片描述
加入之后就能够创建数据表了。

在创建bean文件夹,在里面创建employee和department类:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后就能够创建employee和department两个数据表。
创建完成之后删除yml文件中的建表配置语句。

创建mapper文件夹,并在下面创建DepartmentMapper接口:

@Mapper
public interface DepartmentMapper {

        @Select("select * from department where id=#{id}")
        public Department getDeptById(Integer id);

        @Delete("delete from department where id=#{id}")
        public int deleteDeptById(Integer id);

        @Options(useGeneratedKeys = true,keyProperty = "id")
        @Insert("insert into department(departmentName) values(#{departmentName})")
        public int insertDept(Department department);

        @Update("update department set departmentName=#{departmentName} where id=#{id}")
        public int updateDept(Department department);

}
1.注释版mybatis:

创建DeptController类:

@RestController
public class DeptController {

    @Autowired
    DepartmentMapper departmentMapper;

    @GetMapping("/dept/{id}")
    public Department getDepartment(@PathVariable("id") Integer id){
        return  departmentMapper.getDeptById(id);
    }

    @GetMapping("/dept")
    public Department insertDept(Department department){
        departmentMapper.insertDept(department);
        return department;
    }
}

按id自增创建department
在这里插入图片描述
按照id查询:
在这里插入图片描述
在入口类加入如下注释,能够直接扫描mapper包下的所有mapper:

//使用MapperScan批量扫描所有的Mapper接口
@MapperScan(value = "com.example.springboot06datamybatis.mapper")
2.配置版Mybatis:

创建EmployeeMapper
(之后会将该接口配置在EmployeeMapper.xml文件里):
在这里插入图片描述
在resources资源文件下创建mybatis文件夹并在下面创建mapper文件夹,在里面创建EmployeeMapper.xml配置文件,在mybatis文件夹下创建mybatis-config.xml全局配置文件。(https://mybatis.org/mybatis-3/getting-started.html
进入mybatis网站复制如下全局配置代码到mybatis-config.xml:
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

将如下操作数据库的SQL配置代码复制到EmployeeMapper.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.springboot06datamybatis.mapper.EmployeeMapper">
    <select id="getEmpById" resultType="com.example.springboot06datamybatis.bean.Employee">
    SELECT * FROM employee WHERE id = #{id}
  </select>

    <insert id="insertEmp">
        INSERT INTO employee(lastName,email,gender,d_id) VALUES (#{lastName},#{email},#{gender},#{dId})
    </insert>
</mapper>

yml文件添加:
在这里插入图片描述
创建EmpController:

@RestController
public class EmpController {
    @Autowired
    EmployeeMapper employeeMapper;

    @GetMapping("/emp/{id}")
    public Employee getEmployee(@PathVariable("id") Integer id){
        return  employeeMapper.getEmpById(id);
    }

    @GetMapping("/emp")
    public Employee insertDept(Employee employee){
        employeeMapper.insertEmp(employee);
        return employee;
    }
}

输入网页查询:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值