目录
什么是MVC三层架构,初步了解?
namespace的作用是什么?
Mapper文件中的namespace?
ORM思想(对象关系映射思想)
其中提供了一套映射规则和API
什么是MVC三层架构,初步了解?
三层架构包括,表示层、业务逻辑层、数据层,对应到我的项目中的代码中就是,在web包下书写的是表示层,而表示层是负责调用的,相当于指挥官级别,他只负责调用,逻辑层就是service层,他是负责动手办事的层,例如主要的业务逻辑等等,数据层也就是操作数据的层;
层与层之间一般是使用接口来连接,为了降低耦合度,大概的结构就是你表示层中调用service接口,service中调用dao接口,此外接口一般是父类引用指向子类对象(也就是多态);
又因为我们不可创建的接口只调用一次,他也有可能在所在代码中还有别的用处,所以我们通常会将接口的定义放到方法外面,
public class AccountServiceImpl implements AccountService {
private AccountDao accountDao = new AccountDaoImpl();
@Override
public void transfer(String fromActno, String toActno, double money) throws MoneyNotEnoughException, AppException {...
注意:在每个层都有每个曾负责的东西,例如不要在到层书写和业务逻辑相关的东西,他就只负责CRUD,其余不要乱放,这也体现了MVC的解耦合终极用途;
namespace的作用是什么?
Mapper文件中的namespace?
Mapper文件中的namespace用于绑定Dao接口。在MyBatis中,namespace的值应该设置为对应的Dao接口的全类名,以实现面向接口编程。
-
在MyBatis中,mapper文件中的namespace是用来唯一标识该mapper文件的,它通常与对应的Mapper接口的全限定名相同。namespace的作用主要有以下几个方面:
-
命名空间管理:MyBatis中可以存在多个mapper文件,每个mapper文件中可能包含多个SQL语句。通过namespace来对这些SQL语句进行分类管理,方便组织和查找。
-
避免冲突:使用namespace可以避免不同mapper文件中相同ID的SQL语句冲突。namespace使得每个SQL语句有了独立的标识,确保了其唯一性。
-
映射关系绑定:namespace与Mapper接口的全限定名相同,它们之间建立了映射关系。MyBatis会根据namespace和方法名,自动找到对应的mapper文件和SQL语句执行。
-
初次认识是,我们的web项目中会有很多的Mapper文件(一般是一张表对应一个Mapper文件),我们操作数据库中的表时,一个大型的项目中坑定有很多的Mapper文件,在业务代码中我们会通过sqlsession对象调用执行数据的方法例如select或者update等等,调用的时候我们会传入一个id,然后通过id去到配置文件中去找出对应的配置的sql语句,并执行,但是一旦Mapper文件变得很多,呢我我们如何快速找出id多对应的Mapper文件,此时就需要到了namespace。我们在书写sqlsession调用的方法的参数中的id时,就要写namespace.selectbyid,这样就可以快速找见对应的Mapper文件;
//Mapper配置文件
<mapper namespace="user">
//对应的java代码
SqlSession sqlSession = util.getSqlSession();
int updateData = sqlSession.update("user.UpdateEmployeeData", 4);
ORM思想(对象关系映射思想)
ORM(对象关系映射)是一种编程思想和技术,用于将关系型数据库中的表结构映射到面向对象编程语言中的对象模型。
ORM 的基本思想是通过定义对象和数据库表之间的映射关系,使得开发人员可以像操作对象一样操作数据库,而不需要直接编写SQL语句。
ORM 的优点包括:
简化开发:ORM 提供了一种易于理解和使用的编程模型,开发人员可以直接使用对象的方法和属性来操作数据库,从而免去了复杂的SQL语句和数据库细节。
提高可维护性:通过将数据库和应用程序的逻辑分离,使得代码更加模块化和可维护。当数据库结构改变时,只需更新映射定义,而不需要修改大量的业务逻辑代码。
提高可移植性:ORM 可以隐藏不同数据库之间的差异,使得应用程序可以比较容易地切换或同时支持多种数据库。
提供对象级的查询和持久化:ORM 不仅提供了方便的增删改查操作,还支持复杂的查询和关联操作,可以方便地处理对象之间的关系。
常见的ORM框架包括Hibernate(Java)、Django ORM(Python)、Entity Framework(.NET)等。这些框架都提供了一套映射规则和API,使得开发人员可以更轻松地进行数据库操作,提高开发效率和代码质量。