栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

SpringbootMybatis

Java 更新时间:发布时间: 百科书网 趣学号

day06
  • 1.2.1 常见动态代理
            • 1.JDK动态代理
            • 2.CGLIB动态代理
  • Mapper接口
  • 2.三大框架的整合
    • 2.1 框架的概述
      • 2.1.1 Spring框架
      • 2.1.2 Spring框架的核心机制
      • 2.1.3 SpringMVC
    • 2.2框架之间的调用关系
      • 2.3.1 编辑User的pojo
      • 2.3.2 编辑Mapper接口
      • 2.3.3 编辑xml映射文件
      • 2.3.4 编辑Service接口和实现类
      • 2.3.5 编辑Controller
      • 2.4 编辑核心配置
      • 2.4.1 编辑YML核心配置文件
  • 2.5 Spring管理Mapper接口
      • 2.5.1 报错说明
      • 2.5.2 @Mapper和@MapperScan注解
      • 2.6 整合报错说明

1.2.1 常见动态代理 1.JDK动态代理
特点: 
1.要求被代理者必须实现(有)接口.
代理对象时目标对象的实现类,目标元素
2.JDK代理是jdk默认提供的

2.CGLIB动态代理
特点: 
1.不管我们被代理者是否有接口,都可以为其创建代理对象.代理对象是目标对象的子类.
2.cglib需要手动的导包
3.spring为了创建代理对象方便,自身自动添加cglib依赖项
Mapper接口
    
    @Test
    public void testFindDeptById(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        deptMapper deptMapper = sqlSession.getMapper(deptMapper.class);
        System.out.println(deptMapper.getClass());
        int id = 100;
        List deptById = deptMapper.findDeptById(id);
        System.out.println(deptById);
        sqlSession.close();
    }
2.三大框架的整合 2.1 框架的概述 2.1.1 Spring框架

Spring 为了团队开发将我们的复杂的框架 进行整合,使得程序从控制到调用浑然一体,以一种统一的方式进行调用.
核心:整合第三方框架

2.1.2 Spring框架的核心机制
  1. IOC:
    控制反转:
    将对象创建的权利交给Spring容器管理
    ,由Spring容器管理对象的生命周期
    DI:
    依赖注入:
    创建对象时,如果该对象中有需要依赖的属性,
    Spring负责为我们的属性赋值.
	@RestController
	public class UserController{
		@Autowired
		private UserService userService
	}		
  1. AOP 面向切面编程
2.1.3 SpringMVC

说明:该框架主要的作用:主要用来接收用户的请求,之后完成业务的处理,最终返回响应给用户.

2.2框架之间的调用关系

2.3.1 编辑User的pojo
package com.jt.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class User implements Serializable {
    private Integer id;
    private String  name;
    private Integer age;
    private String  sex;
}

2.3.2 编辑Mapper接口
package com.jt.mapper;

import com.jt.pojo.User;

import java.util.List;

public interface UserMapper {
    //查询demo_user表中的所有数据
    List findAll();
}

2.3.3 编辑xml映射文件



    
        select * from demo_user;
    



2.3.4 编辑Service接口和实现类

1.编辑UserService接口

package com.jt.service;

import com.jt.pojo.User;

import java.util.List;

public interface UserService {
    //查询User表中的所有数据
    List findAll();
}

2.编辑ServiceImpl实现类

package com.jt.service;

import com.jt.mapper.UserMapper;
import com.jt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;//代理对象 jdk的动态代理
    @Override
    public List findAll() {
//        List userList = userMapper.findAll();

        return userMapper.findAll();
    }
}

2.3.5 编辑Controller
package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController//将该类交给Spring容器管理
public class UserController {
    @Autowired
    public UserService userService;
    
    @RequestMapping("/getUser")
    public List findUser(){
        return userService.findAll();
    }
}

2.4 编辑核心配置

url: jdbc:mysql://127.0.0.1:3306/jtdb?
1.serverTimezone=GMT%2B8指定时区 东八区
2.useUnicode=true&characterEncoding=utf8
开启使用Unicode编码,并且指定字符集utf-8
3.autoReconnect=true 断线是否重新连接
4.allowMultiQueries=true 是否允许批量操作

2.4.1 编辑YML核心配置文件
server:
  port: 8090
  servlet:
    context-path: /
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8
    &useUnicode=true&characterEncoding=utf8
    &autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

#SpringBoot整合mybatis
mybatis:
  #指定别名包
  type-aliases-package: com.jt.pojo
  #加载指定的xml映射文件
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true
    
  
2.5 Spring管理Mapper接口 2.5.1 报错说明

2.5.2 @Mapper和@MapperScan注解

1.@Mapper

2.@MapperScan 通过包扫描 简化配置信息

2.6 整合报错说明

2.6.1 绑定异常

1.检查xml映射文件中的namespace
2.检查xml映射文件中Sql的ID

3.检查YML文件中xml映射文件的导入
检查YML文件是否定格,是否有层级缩进问题

4.检查@MapperScan(“com.jt.mapper”)

2.6.2 数据库链接异常


检查数据库链接地址/用户名/密码

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/275136.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号