Hibernate学习(一)创建数据表
(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学习(一)创建数据表相关推荐
- 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面
原文:学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 ...
- 模拟hibernate的注解来创建数据表,内置注解
目录 导读 注解释义 注解定义 内置三大注解 override注解 Deprecated注解 SuppressWarnings注解 元注解 SOURCE和RUNTIME的区别 SOURCE RUNTI ...
- xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧
xampp新建好数据库之后,怎样新建数据表呢?今天咪咪我就来讲解一下xampp中怎样创建数据表和删除数据表. 工具/材料 电脑 电脑 xampp 操作方法 01 如图,单击选中已经创建好的数据库. 0 ...
- MySQL学习笔记_4_MySQL创建数据表(下)
MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...
- MySQL学习笔记_3_MySQL创建数据表(中)
MySQL创建数据表(中) 三.数据字段属性 1.unsigned[无符号] 可以让空间增加一倍 比如可以让-128-127增加到0-255 注意:只能用在数值型字段 2.zerofill[前导零] ...
- MySQL学习笔记_2_MySQL创建数据表(上)
MySQL创建数据表(上) 一.创建数据表的SQL语句模型[弱类型] CREATETABLE [IF NOT EXISTS] 表名称( 字段名1列的类型[属性][索引], 字段名2 列的类型[属性][ ...
- Mysql数据库学习笔记(1.创建数据表)ubuntu18.04
*创建数据表 用户名:root 密码: 连接数据库:mysql -u root -p 退出数据库:quit; exit; ctrl+D *远程连接 mysql -hip地址 -uroot -p -h ...
- MySQL学习之路(八):MySQL创建数据表
CREATE TABLE语句 在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性( ...
- MySQL创建数据表(CREATE TABLE语句)
在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...
- 怎么创建数据表的实体类和业务类_怎样创建一个网站?
怎样创建一个网站?创建网站有三个特别重要的元素,域名.服务器和程序,网站域名按照流程注册就可以了,网站服务器根据网站需要的空间选择,这两个只要你查查或者问提供商就可以慢慢操作的,其中最难的程序,里面需 ...
最新文章
- 智能实验室-全能优化(Guardio) 4.96.0.850
- (转)最好的HTML 5编码教程和参考手册分享
- MySQLdb批量插入数据
- python pytorch自定义_PyTorch使用自定义模块创建数据模型
- python 变成float32_【Python】手把手教你用Python做一个图像融合demo,小白可上手!...
- RHEL5 RHEL6 差异 1
- 缓冲区溢出漏洞攻击演示实验(CProxy 6.2缓冲区溢出漏洞)
- Java中的DatagramPacket与DatagramSocket的初步
- Thinkphp 整合tcpdf
- gridview不显示bit_色彩要求高?这款27寸2K +10.7亿色的显示器工作娱乐都适合
- dao-service-servlet-jsp构建简易web通讯录(三层开发)bug1
- 使用青云主机的GPU主机教程(不完整版)
- 损失函数与代价函数区别
- 3. laravel 包含头尾文件
- 防御DDoS攻击的五种方法
- linux配置web页面登录密码,在Linux下通过WEB认证方式上网
- proteus软件闪退与许可证到期问题解决办法
- 服务器电脑增加机械硬盘分区,台式电脑加新、旧机械硬盘分区教程 旧机械硬盘可以装新电脑上吗?...
- AT指令表(中文详解)
- nginx报错:src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fa
热门文章
- Playing with OS(操作系统)
- 二十一天学通VC++之MFC线程处理概述
- 异常检测算法:孤立森林(Isolation Forest)
- PyTorch:距离度量
- Matplotlib Toolkits:python高级绘图库seaborn
- Scikit-learn:scikit-learn快速教程及实例
- qq浏览文件服务器,腾讯浏览服务
- ubuntu postgresql9.5 源码安装
- php for of,JavaScript中 for、for in、for of、forEach的用法小结(附代码)
- 力扣-1877 数组中最大数对和的最小值