JDBC项目设计规范之DAO设计模式

一 ORM思想

ORM(Object-Relational-Mapping)在对象模型和关系型模型之间做一个映射(转换)

二 实体Entiry编程

1.设计思想
数据库java
对象
字段(列)属性

2.实体Entity编程
     (1)编码规范
  • ① 通常一张表对应一个实体,命名规范:表名t_person,实体类名Person

  • ② 实体类必须实现Serializable

  • ③ 表中的一个字段,对应实体的一个属性。实体属性必须使用包装类型。封装并提供set和get方法。

  • ④ 必须手动提供无参构造方法(必须),如果需要也可以提供有参构造方法(非必要)

  • ⑤ 代码要放在entity包下

(2)示例
  • MySQL库表
create table t_account(
    account_id int primary key auto_increment,
    account_name varchar(20) not null unique,
    account_password varchar(20) not null,
    balance decimal(10,1)
)
  • 实体类
package com.xx.entity;

import java.io.Serializable;

/**
 * 映射t_account表
 */
public class Account implements Serializable {
    private Integer accountId;
    private String accountName;
    private String accountPassword;
    private Double balance;

    //省略getter、setter、无参构造、有参构造(都得写)
}

补充:事实上JdbcTemplate的RowMapper的结果集映射对象,就是ORM思想的应用

三 DAO设计模式

1 场景
问题分析

在实际开发中,针对一张表的复杂业务功能通常需要和表交互多次(比如转账)。如果每次针对表的简单操作我们都写一遍,代码中会出现大量的代码冗余。

解决思路

将重复的SQL操作提炼至方法中,达到一条SQL操作多次复用的目的。

2 DAO编程
核心思想

DAO模式目的就是将SQL语句转化为通用SQL语句,并封装成Java方法、提高代码复用性。

编码规范
  • ① 一张表的操作对应一个DAO

  • ② 一个通用的SQL封装成一个方法,方法名和对应sql关键词一致,且望文生义

    操作Java数据库
    新增insertXxx(Xxx x)insert into ...
    删除deleteXxxxxId(Integer id)delete from ...
    更新updateXxx(Xxx x)update t_xxx set ...
    查询单个Xxx selectXxxxxId(Integer id)select * from ...
    查询多个List<Xxx> selectXxxs()select * from ...
  • ③ 具体实现采用dao接口+impl实现类的形式(目的为提升代码扩展性和维护性

    • ① 接口中做方法声明的约束

    • ②实现类中利用JDBCTemplate做具体实现

    • ③ 接口命名:对应实体类名+Dao,例如表t_person,DAO命名为PersonDAO

    • ④ 实现类名:接口名+Impl,如PersonDAOImpl

    • ⑤ 接口存放在dao包下

    • ⑥ 实现类需要存放在dao.impl包下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值