zoukankan      html  css  js  c++  java
  • 9.ORM数据访问

    1.Spring对ORM的支持

    ORM :

    对象关系映射(Object Relational Mapping)
    是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术
    基于ORM的数据持久层框架有:
    Hibernate
    Mybatis
    TopLink……
    Spring框架则支持集成Hibernate,Java Persistent API(JPA)等,用于资源管理、数据访问对象(DAO)的实现和事务策略

    Spring对ORM的支持,使得数据持久层得到显著增强,ORM在Spring容器中也便于配置和部署
    使用Spring框架来创建ORM的DAO,好处有:
    通用的资源管理
    集成事务管理
    统一常见的数据访问异常
    更容易测试

    2.Spring 集成 Hibernate

    配置DataSource:
    增加dbinfo.properties文件,该属性文件可以配置数据库和Hibernate相关配置

    配置DataSource:
    在applicationContext.xml文件中配置DataSource

    数据源也可以配置其他数据库连接池数据源,比如:
    BoneCP
    Druid等

    配置SessionFactory:
    在applicationContext.xml文件中配置sessionFactory

    编写实体Bean
    编写Dao实现类
    添加@Repository
    注入sessionFactory

    在applicationContext.xml配置文件中添加事务配置

     


    编写Service层实现类
    添加@Service
    添加@Transaction
    注入持久层的Dao

    编写Controller实现类
    添加@Controller、@RequestMapping
    注入业务逻辑层Service

     

    以Spring容器来管理项目中各层对象,并实现注入
    注入的顺序是:dataSource->sessionFactory->XXXDao->XXXService
    ->XXXController

    从而实现控制器中调用业务逻辑层,业务逻辑层调用数据持久层,数据持久层借助sessionFactory和dataSource实现对数据的操作

    3.数据校检

    数据校验在项目中被广泛应用,一般分为前端数据校验和后端数据校验
    前端数据校验可以采用JavaScript、Jquery等前端技术
    后端数据校验可以采用JSR303进行数据校验
    JSR303是一个运行时数据校验框架
    它使得验证逻辑从业务代码中脱离出来
    一般用于表单验证

    JSR303提供了以下注解用于字段的验证
    @NotNull 注解元素必须是非空
    @Null 注解元素必须是空
    @Digits 验证数字构成是否合法
    @Future 验证是否在当前系统时间之后
    @Past 验证是否在当前系统时间之前
    @Max 验证值是否小于等于最大指定整数值
    @Min 验证值是否大于等于最小指定整数值
    @Pattern 验证字符串是否匹配指定的正则表达式
    @Size 验证元素大小是否在指定范围内
    @DecimalMax 验证值是否小于等于最大指定小数值
    @DecimalMin 验证值是否大于等于最小指定小数值
    @AssertTrue 被注解的元素必须为true
    @AssertFalse 被注解的元素必须为false

    Hibernate Validator扩展了该注解
    @Email 被注解的元素必须是电子邮箱地址
    @Length 被注解的字符串的大小必须在指定的范围内
    @NotEmpty 被注解的字符串的必须非空
    @Range 被注解的元素必须在合适的范围内

    编写Controller

  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/Firesun/p/9945253.html
Copyright © 2011-2022 走看看