实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx

上传人:b****0 文档编号:9927724 上传时间:2023-05-22 格式:DOCX 页数:12 大小:1.10MB
下载 相关 举报
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第1页
第1页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第2页
第2页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第3页
第3页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第4页
第4页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第5页
第5页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第6页
第6页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第7页
第7页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第8页
第8页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第9页
第9页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第10页
第10页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第11页
第11页 / 共12页
实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx

《实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx》由会员分享,可在线阅读,更多相关《实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx(12页珍藏版)》请在冰点文库上搜索。

实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现.docx

实验06《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现

实验06、《基于Spring+MyBatis+JavaFX框架的教学管理程序》的设计与实现

一、实验说明

上一个实验使用MyBatis框架改写了教学管理程序的底层——Mapper层。

这次的实验将在上一个实验的基础上,使用Spring框架整合MyBatis和JavaFX。

Spring是一个管理和维护javaBean的容器,因此,本实验涉及到的绝大多数对象都要被Spring容器抢走或接管。

1)JavaFx的Controller层被Spring容器接管

2)Service(Biz)层的各个类被Spring容器接管

3)MyBatis的Mapper(Dao)层接口,被Spring容器抢走

4)MyBatis的Mapper.xml,也被Spring容器抢走

5)MyBatis核心操作对象SqlSession的bean工厂SqlSessionFactory被Spring容器抢走

二、实验准备

1、下载、安装、配置好mysql-8.0.12-winx64和Navicat。

不赘述

2、下载、解压好mysql的jdbc驱动mysql-connector-java-8.0.12,并导入项目中。

不赘述。

3、下载、解压好连接池commons-dbcp2-2.5.0和其依赖包commons-logging-1.2和commons-pool2-2.6.0,并导入项目中。

不赘述。

4、下载、解压好mybatis-3.4.6,并导入项目中。

不赘述。

5、下载、解压好spring-framework-5.1.1.RELEASE。

进入lib文件夹,里面的每一个jar包都是spring框架的组件jar包,这里的组件jar包很多,为了管理方便,项目将该组jar包以userlibrary的形式导入,如下所示:

然后一路Ok、Apply或finish就导入了spring5.1.1。

6、下载、解压好spring整合mybatis的jar包mybatis-spring-1.3.2,并导入项目中。

至此,本项目使用的第三方jar包导入完毕。

如下所示:

三、整合过程

整个整合过程基本上就是spring抢bean的过程。

下面只列出和实验05相比,发生变化的部分。

1、resource目录

(1)修改mysql.properties

增加连接池dbcp2的配置,如下所示

(2)修改mybatis-config.xml

本来mybatis-config中配置了typeAliases、datasource、mapper等内容,但datasource、mapper会被spring抢走,因此只剩下typeAliases。

如下所示:

(3)增加spring核心配置文件:

spring-context.xml

Spring-context.xml文件里面要写两套配置:

1spring自身配置;2抢过来的bean配置。

参考代码如下:

A)抢走数据库配置

B)抢走生产sqlSession的bean工厂sqlSessionFactory,顺带抢走了mapper.xml和mapper接口类对象

C)spring自身的配置

(4)resource/mapper文件夹里面的内容不变

2、exception包不变

3、util包

(1)删除获得mybatis核心操作对象sqlSession的类DBUtil

因为sqlSession被Spring抢走了,由Spring接管对它的管理和维护。

(2)增加SpringFxmlLoader类

由于javaFx的controller将由spring接管,那么前期使用FXMLLoader类加载FXML界面文件的方式要修改。

SpringFxmlLoader类的参考代码如下:

其中,该类中的JavaFXAppMain.APPLICATION_CONTEXT在入口类中定义并赋值,见本文档最后。

之后将利用SpringFxmlLoader来加载fxml文件。

4、domain、domain.wrapper不变

5、mapper层

使用注解创建组件对象。

组件对象的注解有四种:

@Component、@Repository、@Service、@Controller,用在类或接口上,分别表示创建组件、创建数据操作层组件、创建服务层组件、创建控制器层组件。

目前,spring对这四者没有区别,都通用。

但是,作为一个优雅的Javaer,还是需要严格区分的,建议不同的层次使用不同的注解。

如在StudentMapper接口类上,添加注解@Repository,在程序运行过程中,spring就会创建一个StudentMapper类型的对象,该接口由studentMapper.xml实现,因此创建的对象事实上是实现类(这里是studentMapper.xml)的对象。

如果不指定对象名字,spring则会按类型查找。

单例模式下,不需指定对象名字;非单例模式下,可以指定名字,如@Repository(“studentMapper”)。

如果要在service层注入该对象,没指定名字的条件下,直接使用注解@Autowired,按类型查找;如果指定了名字,则使用@Autowired@Qualifier("studentMapper")两个注解修饰。

下面是StudentMapper接口添加接口后的参考代码。

只是添加了注解,其他都没变。

mapper层的其他接口UserMapper、CourseMapper、GradeMapper同样处理即可。

6、service层

这一层,之前项目一直使用”biz”的名称,但在Spring框架中,这一层称为service,因此,本项目将该层重命名为service,该层的类重命名为以”Service”结尾,如StudentService。

首先,Service层依赖于mapper层,因此,要向service注入需要的mapper;第二,之前使用的sqlSession由于被spring接管,因此,不再需要sqlSession,删除即可;第三,之前该类的构造方法,是利用sqlSession的getMapper方法获得各个mapper,并初始化ObservableList,现在的mapper对象被spring接管,不需要getMapper了,还有ObservableList的初始化需要mapper,而这时service还不存在,也就不会存在mapper,因此,删除该构造方法,ObservableList的初始化工作不再使用构造方法,而使用一个显式方法,如setStudObservList来完成。

因此,以下是StudentService的参考代码(部分):

CourseService差不多

GradeService也差不多,参考代码如下:

7、controller层

这一层是JavaFX的控制器层。

(1)增加@Controller注解

该层除了抽象基类EditController不需要加@Controller注解外,每个类将增加注解@Controller,交由Spring接管。

都是单例模式,根据类型注入。

因此,不需要指定name。

(2)使用SpringFxmlLoader类加载fxml界面

切换到另一个界面使用类似于这两句就可以了,如启动主界面的方法如下:

(3)在MainViewController的initialize方法中加载各个表数据

显示MainView时,需要从数据库中加载全部数据,可以在MainViewController的initialize方法中实现。

如下所示

(4)各个控制器需要的service采用注入方式

如,MainViewController需要注入studentService、courseService、gradeService,如下:

其他controller注入如下:

8、view层

不变。

9、程序入口

程序入口类JavaFXAppMain的参考代码:

这个类中加载了spring上下文。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2