JDBC访问数据库操作详解(四)之三层架构:以MySQL为例

JDBC访问数据库操作详解(四)之三层架构:以MySQL为例

1. 三层架构简介

​ 三层架构是一种程序设计结构,使用分层式结构将整个应用拆分为三层

  • 表示层

  • 业务逻辑层

  • 数据访问层

    分层的目的:实现高内聚、低耦合

  • 每一层分工明确,相互独立,任意一层发生修改都不影响其他层

  • 每一层中都不应该出现其它层的技术

在这里插入图片描述

2. 三层

2.1 表示层

​ 表示层,也称为显示层(View)

  • 用于实现系统和用户进行数据交互

​ 向用户展示数据,如控制台、网页、导出文件等

​ 接收用户输入的数据,如Scanner、网页、导入文件等

  • 类的命名:一般使用XxxView,Xxx一般表示业务模块

2.2 业务逻辑层

​ 业务逻辑层,也称为业务层(Service)

  • 用于实现具体的业务逻辑功能

  • 类和接口的命名:一般使用XxxService(接口)、XxxServiceImpl(实现类)

  • 方法的命名:add、remove、modify、find、findAll、findById…

    使用具体业务名,如register、login、submit、apply、transfer…

2.3 数据访问层

​ 数据访问层,也称为持久层(DAO:Data Access Object数据访问对象)

  • 用于实现对数据的访问操作,即数据的持久化操作
  • 类和接口的命名:XxxDao(接口)、XxxDaoImpl(实现类)
  • 方法的命名:insert、delete、update、select、selectAll、selectById…

3. 应用:改写学生管理系统

​ 技术要点

  • 面向接口编程:使用接口解耦合,分离(接口中方法的)调用者和实现者

  • 使用工厂+接口进行对象的创建,降低层与层之间的耦合度,实现解耦合——>高低原则

  • 异常:每一层都需要对该层的异常进行捕获和转换

    • Dao层:捕获SQLException——>抛自定义异常DataAccessException extends RuntimeException

    • Service层:

      • 捕获DataAccessException——>抛自定义异常ServiceException extends RuntimeException

      • 对于业务相关的异常——>抛自定义异常,继承自Exception,如StudentNotFoundException extends Exception

  • 事务:

    • 增、删、改操作必须加事务,查询操作可以不加,但建议所有数据库操作都加事务
    • 事务加在Service层,即在Service层实现事务操作,可以通过代理添加事务功能
    • 需要对事务代码进行封装,使用事务管理器类
    • 使用ThreadLocal管理Connection,实现线程单例

​ 项目结构

  • 结构层次

项目

—JRE System Library //JRE环境

—References Libraries //项目中引用的jar

—lib //用于存放jar包

—src //源代码

—域名反向.项目名

—entity //实体类

—dao //数据访问层的接口

—impl //数据访问层的实现类

—service //业务逻辑层的接口

—impl //业务逻辑层的实现类

—proxy //业务逻辑层的代理类

—view //表示层的类

—util //工具

—mapper //行映射的实现类

—factory //工厂

—exception //异常

—transaction //事务

—impl //事务的实现类

—constant //常量

—vo //值对象

—datasource.properties //数据库配置文件

—objs.properties //工厂的配置文件

源代码会上传到csdn上,感兴趣的朋友可以去下面的链接下载:

下载链接:https://download.csdn.net/download/zdfsb/12660872

4. 封装jar包

​ 将自己写的工具类打包jar包,供他人使用,如实现jdbc操作的代码

​ 步骤:

	1. 新建一个Java项目,将相关代码拷贝/写到该项目中
	2. 右击项目——>Export——>JAR file

注:1.导出的时候只需导出字节码文件,如果一定要导出源代码,分开导出,避免jar包文件过大

​ 2.只导出src文件,不要把jar文件也导出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

mercycrazy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值