时间:2021-07-01 10:21:17 帮助过:26人阅读
hibernate jar 包 1.antlr-2.7.6 rc1 :支持 hibernate 执行 hql 语句 如果没有添加会报 NoClassDefFoundError:antlr/AntlrException 注: HQL ( HibernateQuery Language )提供更加丰富灵活、更为强大的查询能力。 2.commons-collections-3.1 : ApacheCo
hibernate jar包
1.antlr-2.7.6rc1:支持hibernate执行hql语句 如果没有添加会报NoClassDefFoundError:antlr/AntlrException注:HQL(HibernateQuery Language)提供更加丰富灵活、更为强大的查询能力。
2.commons-collections-3.1:ApacheCommons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大,必须使用的jar包。
3.dom4j-1.6.1:xml解析器,提供简单的api读取指定xml
4.ehcache-1.2.3:应用层的缓存组件;可以理解为,持久层从数据库查询出来的对象,交给ehcache保管,下次持久层再需要的时候ehcache直接返回给持久层,不查询数据库;当持久层需要改变某数据时,会让ehcache更新直接的备份并且保存到数据库
5.ejb3-persistence:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。如果缺少会抛出java.lang.NoClassDefFoundError: javax/persistence/EntityListeners异常
6.hibernate3:Hibernate的核心库,数据库连接不需要我们自己来管理,Hibernate对原来的SQL语句进行了封装,原来是对表操作,现在是对对象操作
7.hibernate-annotations:注解配置,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载
核心注解:
@Entity 声明当前是一个持久化类
@Table 设置当前持久化类所映射的数据库表,如果当前类中没有使用@Table注解,Hibernate会自动使用默认的持久化类的类名(不带包名)作为所映射的表名
@Id 设置当前持久化类的标示符属性
@GeneratedValue 设置当前标示符的生产策略。
@GeneratedValue的name属性设置生成策略的名称是TABLE、INENTITY、SEQUENCE或者AUTO之一。
@Column 将持久化类的数学与数据库表中的字段进行映射,name属性值为映射的字段名,length属性值为字段的长度,unique属性表示该列上设置唯一的约束,nullable属性设置该列的值是否可以为空,precision实现设置该字段
的精度,scale属性设置该字段的小数位数
@Transient 标注的属性进行持久化映射
@Temporal java中没有定义时间精度的api,因此处理时间类型数据时,需要设置存储在数据库中所预期的精度,使用
@Temporal注释可以调整时间的精度为:DATE、TIME和TIMESTAMP三种
@ManyToOne 设置该当前持久化类类与其他持久化类之间的多对一关联,其中CascadeType值表示Hibernate将进行级联操作
@OneToMany 设置该当前持久化类与其他持久化类之间的一对多关联
@OneToOne 设置该当前持久化类与其他持久化类之间的一对一关联
@ManyToMany 设置该当前持久化类与其他持久化类之间的多对多关联
@NameQueries 在持久化类中设置命名查询,参考@NameQuery的使用
@NameQuery 在持久化类中设置命名查询,@NamedQuery 和@NamedQueries注释加在在类和包上。如下面的例子:
@NamedQueries({@NamedQuery(name="queryById",query="selectp from Product p where id=:id")})
@Version 设置乐观锁定
@Cache 设置二级缓存
@Filters 设置使用过滤器
@FilterDef 声明过滤器
8.hibernate-cglib-repack-2.1_3:CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包
9.hibernate-commons-annotations:使用注解时需要用到的jar包
10.hibernate-entitymanager:HibernateEntityManager实现了EJB3.0 JPA规范。HibernateJava Persistence provider通过了Sun TCK测试和完全认证,你可以在Java SE 5.0,或Java EE 5.0以上的任何环境里使用Hibernate Java Persistence provider。定义了对数据库进行持久化操作的接口。
11.javassist-3.4.GA:Javassist的(JAVA编程助手)使Java字节码操纵简单。这是一个编辑Java字节码的类库。
12.jta-1.1:JavaTransaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。
13.log4j:是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
14.slf4j-api-1.5.2:SLF4J,即简单日志门面(Simple Logging Facade for Java)。从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。对用来来说只要使用slf4j提供的接口,即可隐藏日志的具体实现。这与jdbc和相似。使用jdbc也就避免了不同的具体数据库。使用了slf4j可以对客户端应用解耦。因为当我们在代码实现中引入log日志的时候,用的是接口,所以可以实时的更具情况来调换具体的日志实现类。这就是slf4j的作用。SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。
15.slf4j-log4j12:slf4j是hibernate的日志接口,通常我们用log4j.jar来实现hibernate的记录日志功能,slf4j-log4j.jar可以看成是用来把slf4j的接口转换成适合log4j的接口的一个适配器。
1.aspectjrt:处理事务和AOP所需的包。AOP是OOP的延续,是AspectOriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing,profiling and monitoring 记录跟踪 优化 校准
Performanceoptimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
对于传统的基于特定事务资源的事务处理而言(如基于JDBC 的数据库访问),Spring并不会对其产生什么影响,我们照样可以成功编写并运行这样的代码。同时,Spring还提供了一些辅助类可供我们选择使用,这些辅助类简化了传统的数据库操作流程,在一定程度上节省了工作量,提高了编码效率。对于依赖容器的参数化事务管理而言,Spring则表现出了极大的价值。Spring本身也是一个容器,只是相对EJB容器而言,Spring显得更为轻便小巧。我们无需付出其他方面的代价,即可通过Spring实现基于容器的事务管理(本质上来讲,Spring的事务管理是基于动态AOP)。
2.aspectjweaver:处理事务和AOP所需的包
3.c3p0-0.9.1.2:c3p0数据库连接池,利用 sqljdbc4 建立与数据库的连接,并且管理这些连接,不用每次访问数据库都 重新发出数据库连接请求,只需
要在c3p0的连接池中拿一个过来就可以了,这样可以大大的提高性能。
4.cglib-nodep-2.1_3:Glib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。当然这些实际的功能是asm所提供的,asm又是什么?Java字节码操控框架。cglib就是封装了asm,简化了asm的操作,实现了在运行期动态生成新的class。实际上CGlib为springaop提供了底层的一种实现;为hibernate使用cglib动态生成VO/PO (接口层对象)
5.common-annotations:支持注解包
6.commons-logging:ASF出品的日志包,struts2 2、spring、hibernate框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录
7.spring:分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
1.commons-fileupload-1.2.1:Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的Java Web开发人员来说,只需要了解和使用其中的三个类:DiskFileUpload、FileItem和FileUploadException。这三个类全部位于org.apache.commons.fileupload包中。
2.freemarker-2.3.15:Freemaker是一个”模板引擎”,也可以说是一个基于模板技术的生成文本输出的一个通用工具.它是一个JAVA的包,一个JAVA程序员可以使用的类库.本身并不是一个对最终用户的应用程序.但是,程序员可以把它应用到他们的产品中.FreeMarker是设计为可以生成WEBPAGES.它是基于SERVLET遵循MVC模式的.这个思路是应用MVC模式要降低分离,网页设计人员和程序员的耦合.
3.ognl-2.7.3:OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
4.struts2-core-2.1.8.1:struts核心包1.获取表单内容,并组织生成参数对象2.根据请求的参数转发请求给适当的控制器3.在控制器中调用业务接口4.将业务接口返回的结果包装起来发送给指定的视图,并由视图完成处理结果的展现5.做一些简单的校验或是国际化工作
5.struts2-spring-plugin-2.1.8:当引入这个插件后,原先所struts创建的action类,交给了spring创建。在struts2-spring-plugin.jar中有一个struts-plugin.xml,里面声明了action类由spring工厂创建。在struts2插件文档里,这样写着“The Spring Plugin works by overriding the Struts ObjectFactory toenhance the creation of core framework objects。”这个插件重写了struts的对象工厂,当创建一个action类时,它会根据struts的配置文件的class属性的值与spring配置文件中的 id属性的值相匹配。如果没有与之相匹配,将会像没有使用这个插件前一样创建,然后由spring自动装配。
6.xwork-core-2.1.6:xwork的核心jar包,由于struts2是webwork的升级版本,所以必定对其有所依赖(struts2在其基础上构建)
mysql-connector-java-3.1.13-bin:mysql连接驱动类库