# one_homework **Repository Path**: ea-creator/one_homework ## Basic Information - **Project Name**: one_homework - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README =================================================================================================== 一、编程题 请完善自定义持久层框架IPersistence,在现有代码基础上添加、修改及删除功能。【需要采用getMapper方式】 二、作业资料说明: 1、提供资料:代码工程、验证及讲解视频。 2、讲解内容包含:题目分析、实现思路、代码讲解。 3、效果视频验证 请完善自定义持久层框架IPersistence,在现有代码基础上添加、修改及删除功能。【需要采用getMapper方式】。 =================================================================================================== 1.题目分析: 1-1.题目要求: 请完善自定义持久层框架IPersistence,在现有代码基础上添加、修改及删除功能。【需要采用getMapper方式】 =================================================================================================== 1-2.任务分析: ※1.【需要采用getMapper方式】 ->(1)其实就是需要用代理的方式调用。 ->(2)虽然是使用代理的方式调用,但是调用的方法还是com.lagou.sqlSession.DefaultSqlSession.java里面的方法, 所以,我准备先按照一般的方式实现DefaultSqlSession.java里面的方法,然后直接调用测试这些方法好用之后, 再来做一个代理方法来实现调用DefaultSqlSession.java里面我新加的方法。 ->(3)我需要弄清楚原有的框架有哪些实现了,哪些没有实现。 ※2.此次作业的成果物分析: - 代码 (1)调用端: com.lagou.test.IPersistenceTest.java com.lagou.pojo.User.java com.lagou.dao.IUserDao.java UserMapper.xml (2)框架端 com.lagou.config.XMLMapperBuilder.java com.lagou.sqlSession.SqlSession.java com.lagou.sqlSession.DefaultSqlSession.java com.lagou.sqlSession.Executor.java com.lagou.sqlSession.simpleExecutor.java - 测试 - 讲解视频(题目分析视频, 实现思路视频, 代码讲解视频(现有框架介绍,追加部分讲解) ---------------------------------------------- 1-2-1.我们期待客户端可以这样调用(主要代码) (※为了提升自己Insert相关的方法也试着实现了,所以有参无参insert,update,delete一共实现6个方法的调用) ---------------------------------------------- IUserDao userDao = sqlSession.getMapper(IUserDao.class); User user = new User(); ... 省略 //1:插入一条默认的数据(为了实现无参状况) int insertOne = userDao.insertOne(); //2:插入指定的用户数据 int saveUser = userDao.saveUser(user); //3:将所有用户的密码初始化(为了实现无参状况) int resetPasswordAll = userDao.resetPasswordAll(); //4:修改指定的用户数据 int updateUser = userDao.updateUser(user); //5:删除没有订单的所有用户数据(为了实现无参状况) int deleteAll = userDao.deleteAll(); //6:删除指定的用户 int deleteUser = userDao.deleteUser(user); ---------------------------------------------- ---------------------------------------------- 1-2-2.任务抽取(调用端) ---------------------------------------------- (1)IUserDao 增加 insertOne,saveUser,resetPasswordAll,updateUser,deleteAll,deleteUser 方法 (2)UserMapper.xml 添加修改及删除操作对应SQL的配置 (3)com.lagou.pojo.User实体类添加与数据库对应的字段 password, birthday 以及 get 和 set 方法 ---------------------------------------------- 1-2-3.任务抽取(框架端) ---------------------------------------------- 在此对之前写的自定义框架进行复习,搞清楚各个模块的功能,对于题目中的需求没有实现的地方进行分析和实现 (1)com.lagou.config.XMLMapperBuilder相关分析 现有的com.lagou.config.XMLMapperBuilder只能解析