hibernate注解配置
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于hibernate注解配置内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在hibernate注解配置相关知识领域提供全面立体的资料补充。同时还包含 h6、hack、hadoop 的知识内容,欢迎查阅!
hibernate注解配置相关知识
-
Spring注解配置和xml配置优缺点比较Spring注解配置和xml配置优缺点比较编辑在昨天发布的文章《spring boot基于注解方式配置datasource》一文中凯哥简单的对xml配置和注解配置进行了比较。然后朋友看到文章后,就问:那你说说这两种区别。编辑额,说真的,还真把凯哥给问蒙圈了。本文来源:凯哥Java【kaigejava】凯哥当时就回答:注解的方便。如果再深入呢?还真说不明白。是啊,现在都在说注解好,但是注解和xml比较起来有哪些优点呢?xml又为什么不好呢?有没有深入思考过么?以下内容是凯哥从网上找的并加以理解的。想要弄清楚这个,我们先来看看Xml.就目前Java web 开发应用中都能见到用xml作为配置的身影。在常用的框架中如:struts、spring mvc、hibernate、mybites等这些框架中(早期版本表现更为突出)都有xml配置。我们就来看看XML的优点:Xml优点1:xml是集中式的元数据,不需要和代码绑定的;在我们开发中,xml配置文件和代码类是区分开的。不需要绑定到代码中2:使用xml配置可以让软件
-
hibernate连接数据库配置1.连接mySql,文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.url"> jdbc:m
-
关于hibernate需要注意的东西在hibernate框架种,需要注意的是在myeclipse中有支持数据库连接的,只需要自己在工具中配置,而且在myeclpise也支持,hibernate核心配置文件的生成,包括工具类的生成等。当不懂,或忘记之时,请看hibernate之一对多的最后一章。 hibernate框架开发的几大重要步骤: 1、创建hibernate的配置文件 2、创建持久化类 3、创建对象--关系映射文件 4、通过hibernate api编写访问数据库代码 而对于我本人而言,或许对很多新手而言,我相信,框架配置方面,很快或者多用就会很熟悉,对于我们最重
-
hibernate基本注解(全)对hibernate的注解都是一知半解的,这次系统记录注解,便于查找 类级别注解 @Entity映射实体类 @Entity(name="tableName") name:可选,对应数据库中的一个表。若表名与实体类名相同,则可以省略 注意:使用@Entity时必须指定实体类的主键属性 @Table @Table(name="",catalog="",schema="") @Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息。 name:可选,映射表的名称,默认表名和实体名称一致,只有在不一致的情况下才需要指定表名。 catalog 可选,
hibernate注解配置相关课程
hibernate注解配置相关教程
- 3. Hibernate 的主配置文件 聊回到 Hibernate,Hibernate 是一个框架,框架只是一个半成品应用程序。需要使用 Hibernate 完成一次具体的数据库数据操作时,需要开发者的组件和 Hibernate 的组件通力合作。对于 Hibernate 来说,如何知道开发者具体使用什么样的数据库、什么样的持久化对象……开发者只需要把这些信息写入到配置文件中,Hibernate 就能通过读取配置信息了解开发者的心意。所以说主配置文件在 Hibernate 和 开发者之间充当了桥梁的作用,是内外交流的通道。Tips: 通过配置文件,在开发者和 Hibernate 之间进行信息传递,让 Hibernate 能从容面对不同开发者的需求。你有没有觉得 Hibernate 把开闭原则用得很好呢!知道了配置文件的作用,现在是时候了解 Hibernate 中的主配置文件能具体传递什么信息了。
- 3. Hibernate 中使用注解 Hibernate 中,通过元数据的方式描述映射关系,其表达语法有 2 种:其一: XML 语法;其二: 本节课程要给大家隆重推荐的是注解语法。注解语法本质就是 Java 语法。
- 3.3 注解的位置 注解说:我可不是随便的代码!每一个注解都有自己位置。如同 @Entity、@Table 是类级别注解,对类做整体说明;如同 @Id、@Column、@Transient 这几个注解是属性、方法级别的,可对属性或方法做说明,如下: @Id private Integer stuId; @Column private String stuName;或 @Id public Integer getStuId() { return stuId; } @Column public String getStuName() { return stuName; }如上 2 种方式都可告诉 Hibernate 如何映射表中的对应字段。既然有 2 种方案,必然会有优劣之分(有比较就会有差别的哲学)。提问时间:建议使用哪一种方式?-------------------启动自问自答模式----------------------建议把注解放在属性对应的 get 方法上。为什么?----------------------让你思考0.5秒钟------------------时间到!公布答案。不管是放在属性上面还是放在 get 方法上面,Hibernate 都要使用反射机制,如果直接反射属性,则是对 OOP 封装特性的挑战。虽然使用反射可以在底层为所欲为,但作为有良知的开发者来讲,则要从规范上杜绝破坏 OOP 规则的事情。当然这只是建议!最后的选择由你决定。
- 3.3 用元注解配置注解 在前面学习 Java 内置的注解的时候,我们已经了解了元注解,元注解就是用于修饰其他注解的注解。通常只需使用这些内置元注解,就可以基本满足我们自定义注解的需求。下面我们将会详解 Java 内置的 5 个元注解,你将会了解为什么需要这些元注解。3.3.1 @RetentionRetention译为保留。@Retention注解定义了一个注解的生命周期(我们前面对于 Java 注解的分类,就是通过其生命周期来划定界限的)。它可以有如下几种取值:RetentionPolicy.SOURCE:注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视;RetentionPolicy.CLASS:注解只被保留到编译进行的时候,它并不会被加载到 JVM 中;RetentionPolicy.RUNTIME:注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。下面我们使用@Retention注解来指定我们自定义的注解@Length的生命周期,实例如下:import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)public @interface Length { int min() default 0; int max() default Integer.MAX_VALUE; String message() default "长度不合法";}上面的代码中,我们指定 @Length 注解可以在程序运行期间被获取到。3.3.2 @Documented这个元注解的作用很简单,标注了此注解的注解,能够将注解中的元素包含到 Javadoc 中去。因此不做过多解释。3.3.3 @Target@Target 注解是最为常用的元注解,我们知道注解可以被应用于类、方法、变量、参数和包等处,@Target 注解可以指定注解能够被应用于源码中的哪些位置,它可以有如下几种取值:ElementType.ANNOTATION_TYPE:可以给一个注解进行注解;ElementType.CONSTRUCTOR:可以给构造方法进行注解;ElementType.FIELD:可以给属性进行注解;ElementType.LOCAL_VARIABLE:可以给局部变量进行注解;ElementType.METHOD:可以给方法进行注解;ElementType.PACKAGE:可以给一个包进行注解;ElementType.PARAMETER:可以给一个方法内的参数进行注解;ElementType.TYPE:可以给一个类型进行注解,比如类、接口、枚举。例如,我们定义注解@Length只能用在类的属性上,可以添加一个@Target(ElementType.FIELD):import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface Length { int min() default 0; int max() default Integer.MAX_VALUE; String message() default "长度不合法";}@Target注解的参数也可以接收一个数组。例如,定义注解@Length可以用在属性或局部变量上:import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD, ElementType.LOCAL_VARIABLE})public @interface Length { int min() default 0; int max() default Integer.MAX_VALUE; String message() default "长度不合法";}至此,我们就完成了 @Length 注解的定义。下面,我们再来看下剩余的两个元注解。3.3.4 @Inherited使用@Inherited定义子类是否可继承父类定义的注解。@Inherited仅针对@Target(ElementType.TYPE)类型的注解有效,并且仅针对类的继承有效,对接口的继承无效:@Inherited@Target(ElementType.TYPE)public @interface TestAnnotation { String value() default "test";}在使用的时候,如果一个类用到了@TestAnnotation:@TestAnnotation("测试注解")public class Pet {}则它的子类默认也定义了该注解:public class Cat extends Pet { }3.3.5 @Repeatable使用@Repeatable这个元注解可以定义注解是否可重复。例如,一个注解用于标注一个人的角色,他可以是学生,也可以是生活委员。@Target(ElementType.TYPE)@Repeatable(Roles.class)public @interface Role { String value() default "";}@Target(ElementType.TYPE)public @interface Roles { Role[] value();}@Repeatable 元注解标注了@Role。而 @Repeatable 后面括号中的类相当于一个容器注解,按照规定,它里面必须要有一个 value 的属性,属性类型是一个被 @Repeatable 注解过的注解数组。经过@Repeatable修饰后,在某个类型声明处,就可以添加多个@Role注解:@Role("学生")@Role("生活委员")public class Student {}
- 3. Hystrix 常用配置项注解详解 Hystrix 常用基础配置项注解如下表所示:注解名称适用位置作用@EnableHystrix类通知应用使用 Hystrix 熔断器@EnableHystrixDashboard类通知应用使用 Hystrix 服务监控台@HystrixCommand方法设置方法的服务容错机制@HystrixProperty方法设置 Hystrix 中的参数@HystrixCollapser方法合并请求
- 3.2 编程配置 所谓编程配置,指通过代码的方式添加配置内容,如下代码用编码方式指定映射文件位置:Configuration cfg = new Configuration().addResource("Student.hbm.xml").addResource("Teacher.hbm.xml");如下代码中指定的 PO 映射是通过注解方式实现的:Configuration cfg = new Configuration().addClass(org.mk.po.Studentclass).addClass(org.mk.po.Teacher.class);当然,除此之外,其它的信息都可以通过编程实现:Configuration cfg = new Configuration().addClass(org.mk.po.Studentclass).addClass(org.mk.po.Teacher.class).setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect").setProperty("hibernate.connection.datasource", "java:comp/env/jdbc/test").setProperty("hibernate.order_updates", "true");至于是否选择编程方式向 Hibernate 进行信息注入,由开发者自行决定。
hibernate注解配置相关搜索
-
h1
h6
hack
hadoop
halt
hana
handler
hanging
hash
hashtable
haskell
hatch
hbase
hbuilder
hdfs
head
header
header php
headers
headerstyle