(1)生成数据库表的创建:

1             // 默认读取hibernate.cfg.xml文件
2             Configuration cfg = new Configuration().configure();
3
4             // 生成并输出sql到文件(当前目录)和数据库
5             SchemaExport export = new SchemaExport(cfg);
6
7             // 创建表结构,第一个true 表示在控制台打印sql语句,第二个true 表示导入sql语句到数据库
8             export.create(true, true); 

(2)Hibernate.cfg.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 5
 6 <hibernate-configuration>
 7 <session-factory>
 8     <!-- 必须去配置的属性 -->
 9     <!-- 配置数据库连接的基本信息: -->
10     <property name="hibernate.connection.driver_class">
11         com.mysql.jdbc.Driver
12     </property>
13     <property name="hibernate.connection.url">
14         jdbc:mysql:///hibernate
15     </property>
16     <property name="hibernate.connection.username">root</property>
17     <property name="hibernate.connection.password">123456</property>
18     <!-- Hibernate的方言 -->
19     <!-- 生成底层SQL不同的 -->
20     <property name="hibernate.dialect">
21         org.hibernate.dialect.MySQLDialect
22     </property>
23
24     <!-- 可选的属性 -->
25     <!-- 显示SQL -->
26     <property name="hibernate.show_sql">true</property>
27     <!-- 格式化SQL -->
28     <property name="hibernate.format_sql">true</property>
29     <!-- hbm:映射 to DDL: create drop alter -->
30     <property name="hibernate.hbm2ddl.auto">update</property>
31
32
33     <!-- 通知Hibernate加载那些映射文件 -->
34     <mapping resource="cn/lonecloud/domain/User.hbm.xml" />
35     <mapping resource="cn/lonecloud/domain/Customer.hbm.xml" />
36     <mapping resource="cn/lonecloud/domain/Order.hbm.xml" />
37
38 </session-factory>
39 </hibernate-configuration>

(3)log4j.properties文件

 1 ### direct log messages to stdout ###
 2 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 3 log4j.appender.stdout.Target=System.err
 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 5 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
 6
 7 ### direct messages to file mylog.log ###
 8 log4j.appender.file=org.apache.log4j.FileAppender
 9 log4j.appender.file.File=c\:mylog.log
10 log4j.appender.file.layout=org.apache.log4j.PatternLayout
11 log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
12
13 ### set log levels - for more verbose logging change 'info' to 'debug' ###
14
15 log4j.rootLogger=off, stdout 

(4)User.java

 1 package cn.lonecloud.domain;
 2
 3 import java.io.Serializable;
 4 import java.lang.reflect.Field;
 5 import java.lang.reflect.Method;
 6 import java.util.Date;
 7
 8 public class User implements Serializable,Cloneable {
 9
10       private String id;
11       private String name;
12       private String password;
13       private Date birthday;
14       public User(){
15           System.out.println("user");
16       }
17     public String getId() {
18         return id;
19     }
20     public void setId(String id) {
21         this.id = id;
22     }
23     public String getName() {
24         return name;
25     }
26     public void setName(String name) {
27         this.name = name;
28     }
29     public String getPassword() {
30         return password;
31
32     }
33     public void setPassword(String password) {
34         this.password = password;
35     }
36     public Date getBirthday() {
37         return birthday;
38     }
39     public void setBirthday(Date birthday) {
40         this.birthday = birthday;
41     }
42     @Override
43     public  Object clone() throws CloneNotSupportedException {
44          Class clazz = User.class;
45          User user =null;
46          try {
47              user = (User)clazz.newInstance();
48              /*user.setBirthday(this.birthday);
49              user.setId(this.id);
50              user.setPassword(this.password);
51              user.setName(this.name);*/
52              Field[] declaredFields = clazz.getDeclaredFields();
53              for(Field field :declaredFields){
54                   Class<?> parameterTypes = field.getType();
55                   String fieldName = field.getName();
56                   String methodName = "set"+fieldName.substring(0,1).toUpperCase()+field.getName().substring(1);
57                   Method method = clazz.getDeclaredMethod(methodName, parameterTypes);
58                   field.setAccessible(true);
59                   method.invoke(user,field.get(this));
60              }
61              return user;
62         } catch (Exception e) {
63             e.printStackTrace();
64         }
65          return null;
66     }
67
68
69 }

(5).user.hbm.xml

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5 <hibernate-mapping package="cn.lonecloud.domain" >
 6     <class name="User" table="t_user"  select-before-update="false">
 7         <!--hibernate为我们生成主键id-->
 8         <id name="id">
 9             <generator class="uuid" />
10         </id>
11
12         <!--默认把类的变量映射为相同名字的表列,当然我们使用column属性修改表字段-->
13         <property name="name" column="names"></property>
14         <property name="password"></property>
15         <property name="birthday" type="date"></property> <!--当为日期类型的时候标明date类型-->
16
17     </class>
18 </hibernate-mapping>

6.Customer.java

 1 package cn.lonecloud.domain;
 2
 3 import java.io.Serializable;
 4 import java.util.HashSet;
 5 import java.util.Set;
 6
 7 public class Customer implements Serializable {
 8
 9     private String id;
10
11     private String customerName;
12
13     private Set<Order> orders = new HashSet<Order>();
14
15     public String getId() {
16         return id;
17     }
18
19     public void setId(String id) {
20         this.id = id;
21     }
22
23     public String getCustomerName() {
24         return customerName;
25     }
26
27     public void setCustomerName(String customerName) {
28         this.customerName = customerName;
29     }
30
31     public Set<Order> getOrders() {
32         return orders;
33     }
34
35     public void setOrders(Set<Order> orders) {
36         this.orders = orders;
37     }
38
39
40 }

View Code

7.Customer.hbm.xml

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5 <hibernate-mapping package="cn.lonecloud.domain" >
 6     <class name="Customer" table="t_customer" lazy="true">
 7         <!--hibernate为我们生成主键id-->
 8         <id name="id">
 9             <generator class="uuid" />
10         </id>
11
12         <!--默认把类的变量映射为相同名字的表列,当然我们使用column属性修改表字段-->
13         <property name="customerName" column="customerName"></property>
14         <set name="orders" lazy="extra" fetch="join" cascade="all-delete-orphan">  <!-- lazy fetch -->
15             <key column="customer_id"></key>
16             <one-to-many class="cn.lonecloud.domain.Order"/>
17         </set>
18
19     </class>
20 </hibernate-mapping>

View Code

8.Order.java

 1 package cn.lonecloud.domain;
 2
 3 import java.io.Serializable;
 4
 5 public class Order  implements Serializable{
 6
 7      private String id;
 8
 9      private String orderNumber;
10
11      private float price;
12
13      private Customer customer;
14
15
16     public Customer getCustomer() {
17         return customer;
18     }
19
20     public void setCustomer(Customer customer) {
21         this.customer = customer;
22     }
23
24     public String getId() {
25         return id;
26     }
27
28     public void setId(String id) {
29         this.id = id;
30     }
31
32     public String getOrderNumber() {
33         return orderNumber;
34     }
35
36     public void setOrderNumber(String orderNumber) {
37         this.orderNumber = orderNumber;
38     }
39
40     public float getPrice() {
41         return price;
42     }
43
44     public void setPrice(float price) {
45         this.price = price;
46     }
47
48
49
50
51
52 }

View Code

9.Order.hbm.xml

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5 <hibernate-mapping package="cn.lonecloud.domain" >
 6     <class name="Order" table="t_order" >
 7         <!--hibernate为我们生成主键id-->
 8         <id name="id">
 9             <generator class="uuid" />
10         </id>
11
12         <!--默认把类的变量映射为相同名字的表列,当然我们使用column属性修改表字段-->
13         <property name="orderNumber" column="orderNumber"></property>
14         <property name="price" column="price"></property>
15         <many-to-one name="customer" class="cn.lonecloud.domain.Customer">
16            <column name="customer_id"/>
17         </many-to-one>
18     </class>
19 </hibernate-mapping>

View Code

Hibernate学习(一)创建数据表相关推荐

  1. 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

    原文:学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 ...

  2. 模拟hibernate的注解来创建数据表,内置注解

    目录 导读 注解释义 注解定义 内置三大注解 override注解 Deprecated注解 SuppressWarnings注解 元注解 SOURCE和RUNTIME的区别 SOURCE RUNTI ...

  3. xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧

    xampp新建好数据库之后,怎样新建数据表呢?今天咪咪我就来讲解一下xampp中怎样创建数据表和删除数据表. 工具/材料 电脑 电脑 xampp 操作方法 01 如图,单击选中已经创建好的数据库. 0 ...

  4. MySQL学习笔记_4_MySQL创建数据表(下)

    MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...

  5. MySQL学习笔记_3_MySQL创建数据表(中)

    MySQL创建数据表(中) 三.数据字段属性 1.unsigned[无符号] 可以让空间增加一倍 比如可以让-128-127增加到0-255 注意:只能用在数值型字段 2.zerofill[前导零] ...

  6. MySQL学习笔记_2_MySQL创建数据表(上)

    MySQL创建数据表(上) 一.创建数据表的SQL语句模型[弱类型] CREATETABLE [IF NOT EXISTS] 表名称( 字段名1列的类型[属性][索引], 字段名2 列的类型[属性][ ...

  7. Mysql数据库学习笔记(1.创建数据表)ubuntu18.04

    *创建数据表 用户名:root  密码: 连接数据库:mysql -u root -p 退出数据库:quit; exit; ctrl+D *远程连接 mysql -hip地址 -uroot -p -h ...

  8. MySQL学习之路(八):MySQL创建数据表

    CREATE TABLE语句 在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性( ...

  9. MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  10. 怎么创建数据表的实体类和业务类_怎样创建一个网站?

    怎样创建一个网站?创建网站有三个特别重要的元素,域名.服务器和程序,网站域名按照流程注册就可以了,网站服务器根据网站需要的空间选择,这两个只要你查查或者问提供商就可以慢慢操作的,其中最难的程序,里面需 ...

最新文章

  1. 智能实验室-全能优化(Guardio) 4.96.0.850
  2. (转)最好的HTML 5编码教程和参考手册分享
  3. MySQLdb批量插入数据
  4. python pytorch自定义_PyTorch使用自定义模块创建数据模型
  5. python 变成float32_【Python】手把手教你用Python做一个图像融合demo,小白可上手!...
  6. RHEL5 RHEL6 差异 1
  7. 缓冲区溢出漏洞攻击演示实验(CProxy 6.2缓冲区溢出漏洞)
  8. Java中的DatagramPacket与DatagramSocket的初步
  9. Thinkphp 整合tcpdf
  10. gridview不显示bit_色彩要求高?这款27寸2K +10.7亿色的显示器工作娱乐都适合
  11. dao-service-servlet-jsp构建简易web通讯录(三层开发)bug1
  12. 使用青云主机的GPU主机教程(不完整版)
  13. 损失函数与代价函数区别
  14. 3. laravel 包含头尾文件
  15. 防御DDoS攻击的五种方法
  16. linux配置web页面登录密码,在Linux下通过WEB认证方式上网
  17. proteus软件闪退与许可证到期问题解决办法
  18. 服务器电脑增加机械硬盘分区,台式电脑加新、旧机械硬盘分区教程 旧机械硬盘可以装新电脑上吗?...
  19. AT指令表(中文详解)
  20. nginx报错:src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fa

热门文章

  1. Playing with OS(操作系统)
  2. 二十一天学通VC++之MFC线程处理概述
  3. 异常检测算法:孤立森林(Isolation Forest)
  4. PyTorch:距离度量
  5. Matplotlib Toolkits:python高级绘图库seaborn
  6. Scikit-learn:scikit-learn快速教程及实例
  7. qq浏览文件服务器,腾讯浏览服务
  8. ubuntu postgresql9.5 源码安装
  9. php for of,JavaScript中 for、for in、for of、forEach的用法小结(附代码)
  10. 力扣-1877 数组中最大数对和的最小值