Spring框架+Mybatis框架

本文介绍了如何使用SpringBoot集成Mybatis,通过SpringMVC和Mybatis实现数据层的CRUD操作。讲解了Spring的IOC和DI原理,以及Mybatis的ORM映射。详细展示了从创建实体类、数据层接口、SQLMapper.xml映射文件,到控制器的实现过程,并提供了测试URL。
摘要由CSDN通过智能技术生成
(一)Spring框架

SpringMVC框架:基于【MVC】原理的【控制层】框架。

Spring框架:是基于【IOC和DI】原理的【JavaEE】框架。

IOC:控制反转的思想。是由工厂模式演化过来的。

工厂容器(IOC容器)控制用户所需要的外部资源(奔驰,宝马,奥迪等)(工厂角度)

理解:IOC容器就是生产对象的工厂。

以前代码:正向调用

问题:紧密耦合(下图这种情况是A依赖于B,如果B有变化,一定会影响到A)
A -> B
new B();

现在代码:控制反转

控制理解:IOC容器控制用户所需要的外部资源
控制运行:启动应用就会扫描,谁的类上方有这个注解就自动new一个对象,封装在工厂里
反转理解:返回用户所需要的资源(对象)
反转:new好的对象赋值给变量
A B D E F
| | |
IOC容器(B、D)
@Component注解 组件注解(创建实例)
@Autowired注解 注入注解

IOC:控制反转。
DI:依赖注入。
DI理解:用户以来容器给他注入资源(用户角度)

(二)Mybatis框架:基于【ORM】原理的【数据层】框架

ORM:对象关系映射原理。

数据层DAO企业信息系统层EIS
MybatisMysql
成员变量字段
对象记录

(一)创建SpringBoot工程

(1)选择Mysql驱动、Mybatis框架、SpringMVC框架。

(2)配置SpringBoot工程的核心配置文件application.properties
数据库连接参数

(3)DAO数据层开发步骤:实体类(DAO(Data Access Object) [数据库访问对象]))
com.zhaoyang.bean.Person

public class Person {
	Integer id;
	String name;
	Double sal;
	String bir;//根据数据库表格定义好4个成员变量,注意用类类型来定义而不是基本数据类型
    //定义好成员变量后,按照那5步走
	public Person(String name, Double sal, String bir) {
//这里注意的是,在数据库里,由于id是主键,已经选择了自动递增,这里在生成有参数的方法时就不用勾选id了
		super();
		this.name = name;
		this.sal = sal;
		this.bir = bir;
	}

(4)DAO数据层开发步骤:数据层接口
com.zhaoyang.dao.PersonDAO

public interface PersonDAO {
	int insert(Person person);// 添加(添加的是整个人的信息)
	int update(Person person);// 修改(根据id修改其它)
	int delete(int id);// 删除(根据id删除)
	Person getPersonByID(int id);// 查询(根据id查询一个对象)
	List<Person> getPersonByName(String name);// 查询(根据名字查询多个对象)
}

(5)DAO数据层开发步骤:实现数据层接口
以前:com.zhaoyang.dao.PersonDAOImpl用JDBC实现。
现在:用SQLMapper.xml映射文件来实现接口。

id=“方法名” parameterType="参数类型’’ resultType="返回类型’’ concat(’%’,#{name},’%’)连接

<mapper namespace="com.cuiyudong.dao.PersonDAO">  
<insert id="insert" parameterType="Person">
insert into person(name,sal,bir) values(#{name}, #{sal}, #{bir})
</insert>
<update id="update" parameterType="Person">
update person set name=#{name}, sal=#{sal}, bir=#{bir} where id=#{id}
</update>
<delete id="delete" parameterType="int">
delete from person where id = #{id}
</delete>
<select id="getPersonByID" parameterType="int" resultType="Person">//注意:查询语句需要有返回值
select * from person where id = #{id}
</select>
<select id="getPersonByName" parameterType="string" resultType="Person">
select * from person where name like concat('%',#{name},'%')
</select>
</mapper>

(6)控制器测试数据层的5个方法
com.zhaoyang.controller.PersonAction

@RestController
@RequestMapping("person")
public class PersonAction {
	@Autowired//注入对象
	PersonDAO dao;//创建对象
	@RequestMapping("m1")
	public int m1(Person person) {
		int i = dao.insert(person);//调用方法
		return i;
	}
	@RequestMapping("m2")
	public int m2(Person person) {
		int i = dao.update(person);
		return i;
	}
	@RequestMapping("m3")
	public int m3(int id) {
		int i = dao.delete(id);
		return i;
	}
    @RequestMapping("m4")
	public Person m4(int id) {
		Person person = dao.getPersonByID(id);
		return person;
	}
	// 查询(搜索 + 分页)
	// 前台分页参数说明:
	// 参数一:页码、第几页
	// 参数二:条数、每页按几条显示
	@RequestMapping("m5")
	public List<Person> m5(String name, int pageNum, int pageSize) {
		PageHelper.startPage(pageNum, pageSize);
		List<Person> list = dao.getPersonByName(name);
		return list;
	}

(7)启动类上方添加扫描包注解
@MapperScan(“dao接口所在包”)

@MapperScan("com.cuiyudong.dao")
public class Springboot07Application {

(8)测试

测试添加方法
http://127.0.0.1:8080/person/m1?name=a&sal=3&bir=20001111

测试修改方法
http://127.0.0.1:8080/person/m2?name=b&sal=4&bir=20211212&id=11

测试删除方法
http://127.0.0.1:8080/person/m3?id=11

测试查询方法
http://127.0.0.1:8080/person/m4?id=1

http://127.0.0.1:8080/person/m5?name=a

http://127.0.0.1:8080/person/m5?name=a&pageNum=1&pageSize=3 //每页3条第1页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YD_1989

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值