Oracle日期转换为星期示例

需积分: 47 5 下载量 117 浏览量 更新于2024-09-26 收藏 2.06MB PDF 举报
"该资源主要涉及Oracle数据库查询特定日期对应星期的方法,以及EJB3.0的相关知识,包括EJB的运行环境配置、会话Bean和实体Bean的开发与生命周期等概念。" 在Oracle数据库中,查询特定日期是星期几通常可以使用`TO_CHAR`函数结合日期格式 `'d'` 来实现。例如,查询日期 '2011-04-03' 对应的星期数,Oracle会返回一个介于1到7之间的数字,其中1表示星期天,7表示星期六。如果返回的结果是0(在某些Oracle版本中,星期天可能被表示为0),可以通过`DECODE`函数将其转换为7,以保持一致性。查询语句如下: ```sql SELECT decode(to_char(to_date('2011-04-03','YYYY-MM-DD'),'d')-1,'0','7',to_char(to_date('2011-04-03','YYYY-MM-DD'),'d')-1) as dayNum FROM DUAL; ``` 这个查询将返回 '2011-04-03' 这一天是星期日,对应的数字为1。 接下来,我们来深入探讨EJB3.0的相关知识。EJB,即Enterprise JavaBeans,是Java平台企业版(Java EE)的一部分,用于构建分布式的企业级应用程序。EJB3.0是EJB规范的一个重要版本,引入了许多改进,使其更易用,减少了大量的样板代码。 1. **EJB的运行环境**:EJB需要在支持Java EE的服务器上运行,如JBOSS、WebLogic、GlassFish等。这些服务器提供了EJB的容器,负责管理EJB的生命周期、事务、安全性等。 2. **JNDI(Java Naming and Directory Interface)**:EJB通过JNDI查找服务,JNDI提供了一种标准的方式来定位和访问分布式系统中的对象。 3. **会话Bean(Session Bean)**:分为无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。无状态会话Bean不保存任何客户端信息,适合一次性操作;有状态会话Bean则可以记住客户端的上下文信息,适用于需要维护状态的交互。 4. **实例池化(Instance Pooling)**:无状态会话Bean通常使用实例池进行管理,提高性能和资源利用率。 5. **生命周期事件**:EJB有特定的生命周期方法,如初始化、销毁等,开发者可以通过这些方法进行定制化处理。 6. **拦截器(Interceptor)**:允许在方法调用前后插入自定义逻辑,提供AOP(面向切面编程)功能。 7. **依赖注入(Dependency Injection)**:EJB3.0引入了JSR 330标准,使得组件之间的依赖关系可以通过注解轻松管理,减少手动装配工作。 8. **定时服务(Timer Service)**:EJB3.0提供了定时任务的API,可以创建定时任务执行特定的操作。 9. **安全服务(Security Service)**:EJB支持角色基于的安全模型,可以控制不同用户对EJB的访问权限。 10. **实体Bean(Entity Bean)**:用于持久化数据,通常与数据库表进行映射,支持单表映射或多表关联映射。 在EJB3.0中,实体Bean的配置大大简化,使用注解代替XML配置文件,使得开发更加便捷。同时,JNDI、数据源配置、事务管理等都是EJB3.0中非常关键的部分,对于理解和使用EJB3.0来说至关重要。在实际开发中,开发者需要掌握这些核心概念和用法,以便高效地构建和维护企业级应用。