Hibernate使用注解方式

------------------注解-------------------
@Entity    //声明一个实体
@Table(name="表名")  //与表映射
@Id     //指定主键
@Column //指定表里对应的列











-----------多对多注解方式编程步骤 -----------
一、首先需要建立三张表,两个JavaBean类个对应的一张表以及一张中间表
建表注意事项:

1、对应javabean的两张表一定需要各有一个主键,这两个主键分别对应中间表里的两个外键,这样才能建立关联

2、建表sql语句示例如下:
create table student2(
        id number primary key not null,
        name varchar(30)
);

create table course(
       id number primary key not null,
       name varchar2(30)
);

create table student2_course(
       s_id number references student2(id),
       c_id number references course(id)
);

二、注解的使用
(放在类前面的注解)
1、@Entity     //放在JavaBean类的前面,用来声明这是一个实体 
2、@Table(name="表名")     //放在@Entity之后,用来声明该实体类对应的表
3、 @GenericGenerator (name = "genID" , strategy = "increment" )          //声明主键的生成方式

(放在方法名前面的注解)
4、@Id          //声明主键,也可以放在get方法之前
5、@Column //声明该变量对应表中的列  
6、@GeneratedValue(generator="genID")   //和GenericGenerator对应使用  里面的generator属性的值与GenericGenerator里面的name对应的值相同
7、@ManytoMany           //声明多对多关系
8、 @JoinTable( name= "student2_course",                                                  
                   joinColumns={ @JoinColumn(name= "c_id")},
                   inverseJoinColumns={ @JoinColumn(name= "s_id")} )                    //name:对应的中间表      
                                                                                                                      //jonColumns:里面的参数是个数组,因此用{ } 里面是@JoinColumn(name="")声明与这个javaBean主键相关联的表中外键
                                                                                                                       //inverseJoinColumns:同理,声明另与一个javabean对用的表格中的外键
           具体的代码示例 如下:                                                                                         
//类coursu总的
@Entity
@Table(name="course")
@GenericGenerator(name = "genID", strategy = "increment")
public class Course {
     @Id
     @GeneratedValue(generator="genID")
     @Column(name="id")
     private Long id;
     @Column(name="name")
     private String name;
     @ManyToMany
     @JoinTable(name="student2_course",
                   joinColumns={@JoinColumn(name="c_id")},
                   inverseJoinColumns={@JoinColumn(name="s_id")} )
     private Set<Student2> students = new HashSet<Student2>();



三、配置文件hibernate.cfg.xml
      需要在配置文件中添加映射类
          <mapping class="对应类的路径"/>
          <mapping class="com.ldl.domain1.GoodBean"/>

<!DOCTYPE hibernate-configuration PUBLIC
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<!--      1、加载数据库驱动,获取数据库连接 -->
     <session-factory>
          <property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property>
          <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
          <property name="hibernate.connection.username">scott</property>
          <property name="hibernate.connection.password">tiger</property>
          <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!-- 169.254.146.196 -->
          <!-- 显示SQL,默认为false -->
          <property name="hibernate.show_sql">true</property>

          <!--添加映射类 -->
          <mapping class="com.ldl.domain1.GoodBean"/>
          <mapping class="com.ldl.domain2.Course"/>
          <mapping class="com.ldl.domain2.Student2"/>

     </session-factory>
</hibernate-configuration>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值