什么网站可以做视频剪辑的兼职,全球搜官网,电脑自带的网页制作软件,关键词排名优化软件策略1.Mybatis的定义 数据持久化是将内存中的数据模型转换为存储模型#xff0c;以及将存储模型转换为内存中数据模型的统称。例如#xff0c;文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。MyBatis 支持定制化 SQL、存储过程以及高级映射#xff0c;可以…1.Mybatis的定义 数据持久化是将内存中的数据模型转换为存储模型以及将存储模型转换为内存中数据模型的统称。例如文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。MyBatis 支持定制化 SQL、存储过程以及高级映射可以在实体类和 SQL 语句之间建立映射关系是一种半自动化的 ORM 实现。其封装性低于 Hibernate但性能优秀、小巧、简单易学、应用广泛。ORMObject Relational Mapping对象关系映射是一种数据持久化技术它在对象模型和关系型数据库之间建立起对应关系并且提供了一种机制通过 JavaBean 对象去操作数据库表中的数据。MyBatis 的主要思想是将程序中的大量 SQL 语句剥离出来使用 XML 文件或注解的方式实现 SQL 的灵活配置将 SQL 语句与程序代码分离在不修改程序代码的情况下直接在配置文件中修改 SQL 语句。MyBatis 与其它持久性框架最大的不同是MyBatis 强调使用 SQL而其它框架例如 Hibernate通常使用自定义查询语言即 HQLHibernate查询语言或 EJB QLEnterprise JavaBeans查询语言
2.搭建Mybatis
注入依赖
dependenciesdependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.2/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.6.6/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdversion2.6.6/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion1.7.14/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.26/version/dependency/dependencies
3.配置数据源
配置好数据源后后端和数据库之间就建立起了联系
以下是配置数据源的代码
//配置数据源
spring:datasource:username: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/easydata
//接收到mapper请求后程序会去mapper文件夹下寻找xml文件
mybatis:mapper-locations: classpath:mapper/*.xml
//打印debug日志
logging:level:com.easy.dao: debug4.增删改查操作
1.创建一个部门表(department) 2.在编译工具(idea,ecilipse)中在bean包下创建一个Department的实体类
public class Department {private int id;private String code;private String name;public int getId() {return id;}public void setId(int id) {this.id id;}public String getCode() {return code;}public void setCode(String code) {this.code code;}public String getName() {return name;}public void setName(String name) {this.name name;}Overridepublic String toString() {return Department [id id , code code , name name ];}}
3.在dao包下创建一个接口
package com.easy.dao;import org.apache.ibatis.annotations.Mapper;import com.easy.bean.Department;Mapper
public interface IDepartmentDao {int addDepartment(Department dep);int delDepartment(int id);int editDepartment(Department dep);Department selectDepartment(int id);
}4.在resources文件夹下创建一个mapper文件夹然后创建一个对应department表的xml文件
insert增
delete删
update改
select查
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper
PUBLIC -//mybatis.org//DTD Mapper 3.0//EN
http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.easy.dao.IDepartmentDaoinsert idaddDepartmentinsert into department(code,name) value(#{code},#{name})
/insertdelete iddelDepartmentdelete from department where id#{id}
/deleteupdate ideditDepartmentupdate department set code#{code},name#{name} where id#{id}
/updateselect idselectDepartment resultTypecom.easy.bean.Departmentselect code,name from department where id#{id}
/select/mapper5.在controller包下创建一个Controller类
这里我没有把导入包这部分的代码贴到下面请注意
RestController
public class EasyDepController {AutowiredIDepartmentDao dao;PostMapping(adddept)public String addDepartment(Department dep) {dao.addDepartment(dep);return add 成功;}DeleteMapping(deletedept/{id})public String delDepartment(PathVariable int id){dao.delDepartment(id);return delete 成功;}PutMapping(updatedept)public String editDepartment(Department dep) {dao.editDepartment(dep);return update 成功;}GetMapping(selectdept/{id})public Department selectDepartment(PathVariable int id) {return dao.selectDepartment(id); }
}这样就实现了前后端之间的交互
5.增删改查中要注意的点
$和#的区别
#是占位符会先占位可以有效防止SQL注入(SQL注入就是SQL语句的结果被其他语句影响造成查询结果错误的结果)
$会被程序识别为字符串容易被SQL注入