- mybatis知识补充
1.参数只有一个的话,mybatis根据下标取值,所以调用参数时可以不同名字(除参数前加@Param)
2.代理对象:
a.JDK动态代理:特点1(要求被代理者必须实现/有接口);特点2(由jdk默认提供)
b.CGLIB动态代理:特点1(不管被代理者是否有接口,都可以为其创建对象,代理对象是目标对象的子类);特点2(需要手动导入jar包);特点3(spring为了方便会自动创建jar包依赖)
c.getMapper创建对象时获取的接口字节码对象时JDK内部动态为接口生成的代理对象
d.调用代理对象功能与接口一致 - 框架概述
Spring框架:
将复杂的框架进行整合,是程序有控制到调用一体化,即整合第三方框架
Spring框架的核心机制:
1.IOC-DI:IOC控制反转,将对象创建对象的权利交给Spring容器,由Spring容器管理对象的生命周期;DI依赖注入,若创建对象时,有需要的属性,则由Spring负责为其赋值
2.AOP面向切面编程
SpringMVC框架(Controller层):
接收请求,处理响应 - SSM项目整合
1.更改pom.xml
载入mybatis,jdbc,Lombot依赖
2. pojo层
2.1 封装数据
package com.jt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class User implements Serializable {
private Integer id;
private String name;
private Integer age;
private String sex;
}
3. mapper层
3.1 直接操作DB的接口
package com.jt.mapper;
import com.jt.pojo.User;
import java.util.List;
//将该接口交给Spring容器管理
//@Mapper
public interface UserMapper {
List findAll();
}
4. mapper的xml映射文件
select * from demo_user
5. servicer层
5.1 将mapper层获取的数据拿过来处理准备返回给controller
public interface UserService {
List findAll();
}
@Service //将类交给Spring容器
public class UserServiceImpl implements UserService{
@Autowired
private UserMapper userMapper;
@Override
public List findAll() {
return userMapper.findAll();
}
}
6. controller层
6.1 将service层获取的数据返回给用户
@RestController=@ResponseBody+@Controller
@RestController
//扫描全部的mapper接口
@MapperScan("com.jt.mapper")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/getUser")
public List finduser(){
return userService.findAll();
}
}
7. 核心配置(mybatis和数据库的配置):
serverTimezone=GMT%2B8:指定时区为东八区
useUnicode=true&characterEncoding=utf8:开启使用Unicode解码,并且指定字符集UTF-8
autoReconnect=true:断线重连
allowMultiQueries=true:是否允许批量查询
server:
port: 8090
servlet:
context-path: /
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
mybatis:
#设置别名包
type-aliases-package: com.jt.pojo
mapper-locations: classpath:/mybatis/mappers/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
- Servlet
是Java后台程序与用户交互的媒介
参数传递的核心规则:
@GetMapping("/findServlet")
public String findServlet(HttpServletRequest request){
String age = request.getParameter("age");
Integer ageInt = Integer.parseInt(age);
return "获取数据:"+age;
}



