Hibernate环境搭建
发布日期:2021-06-29 15:01:44
浏览次数:2
分类:技术文章
本文共 6913 字,大约阅读时间需要 23 分钟。
Hibernate环境搭建
一、新建动态web工程
二、新建lib文件夹。引入jar
相关jar下载
三、引入jar
右键所有jar—Build Path ---- add四、在src下新建配置文件hibernate.cfg.xml
com.mysql.jdbc.Driver jdbc:mysql:///hibernate root root org.hibernate.dialect.MySQLDialect true true update org.hibernate.connection.C3P0ConnectionProvider 5 20 120 3000 4 thread
五、在src下新建配置文件log4j.properties
### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.errlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ ABSOLUTE} %5p %c{ 1}:%L - %m%n### direct messages to file mylog.log ###log4j.appender.file=org.apache.log4j.FileAppenderlog4j.appender.file.File=c\:mylog.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{ ABSOLUTE} %5p %c{ 1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' #### error warn info debug tracelog4j.rootLogger= info, stdout
六、建立目录结构和工具类
HibernateUtils
package com.itzheng.hibernate.utils;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;/*Hibernate的工具类做hibernate的小练习,对configuration的configure()方法很好奇,为啥创建的对象还要执行这个方法呢。Configuration cfg = new Configuration().configure();原来configure()方法默认会在classpath下面寻找hibernate.cfg.xml文件,如果没有找到该文件,系统会打印如下信息并抛出HibernateException异常。其实不使用configure()方法也可以Configuration cfg = new Configuration();这时hibernate会在classpath下面寻找hibernate.properties文件,如果没有找到该文件,系统会打印如下信息并抛出HibernateException异常。 */public class HibernateUtils { public static final Configuration cfg; public static final SessionFactory sf; static { cfg = new Configuration().configure();// 获取与数据库的链接的配置文件 sf = cfg.buildSessionFactory();//开启事务建立与数据库之间的链接 } public static Session openSession() { return sf.openSession(); } public static Session getCurrentSession() { return sf.getCurrentSession(); }}
七、建立数据库
表可以在hibernate里面配置好自动创建八、创建domian包,以及测试类
创建测试类及其对应的配置文件 Customerpackage com.itzheng.hibernate.domain;import java.util.HashSet;import java.util.Set;/* * 客户的实体 */public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_phone; private String cust_mobile; // 一个客户有多个联系人 // 通过ORM的方式表示:一个客户对应多个联系人。 // 放置的是多的一方的集合。Hibernate默认使用的是Set集合。 private SetlinkMans = new HashSet (); public Long getCus_id() { return cust_id; } public void setCust_id(Long cust_id) { this.cust_id = cust_id; } public String getCust_name() { return cust_name; } public void setCust_name(String cust_name) { this.cust_name = cust_name; } public String getCust_source() { return cust_source; } public void setCust_source(String cust_source) { this.cust_source = cust_source; } public String getCust_industry() { return cust_industry; } public void setCust_industry(String cust_industry) { this.cust_industry = cust_industry; } public String getCust_level() { return cust_level; } public void setCust_level(String cust_level) { this.cust_level = cust_level; } public String getCust_phone() { return cust_phone; } public void setCust_phone(String cust_phone) { this.cust_phone = cust_phone; } public String getCust_mobile() { return cust_mobile; } public void setCust_mobile(String cust_mobile) { this.cust_mobile = cust_mobile; } public Set getLinkMans() { return linkMans; } public void setLinkMans(Set linkMans) { this.linkMans = linkMans; }}
Customer.hbm.xml
LinkMan
package com.itzheng.hibernate.domain;/* * 联系人的实体 * CREATE TABLE `cst_linkman` ( `lkm_id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT '联系人编号(主键)', `lkm_name` VARCHAR(16) DEFAULT NULL COMMENT '联系人姓名', `lkm_cust_id` BIGINT(32) DEFAULT NULL COMMENT '客户id', `lkm_gender` CHAR(1) DEFAULT NULL COMMENT '联系人性别', `lkm_phone` VARCHAR(16) DEFAULT NULL COMMENT '联系人办公电话', `lkm_mobile` VARCHAR(16) DEFAULT NULL COMMENT '联系人手机', `lkm_email` VARCHAR(64) DEFAULT NULL COMMENT '联系人邮箱', `lkm_qq` VARCHAR(16) DEFAULT NULL COMMENT '联系人qq', `lkm_position` VARCHAR(16) DEFAULT NULL COMMENT '联系人职位', `lkm_memo` VARCHAR(512) DEFAULT NULL COMMENT '联系人备注', PRIMARY KEY (`lkm_id`), KEY `FK_cst_linkman_lkm_cust_id` (`lkm_cust_id`), CONSTRAINT `FK_cst_linkman_lkm_cust_id` FOREIGN KEY (`lkm_cust_id`) REFERENCES `cst_customer` (`cust_id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; * */public class LinkMan { private Long lkm_id; private String lkm_name; private String lkm_gender; private String lkm_phone; private String lkm_mobile; private String lkm_email; private String lkm_qq; private String lkm_position; private String lkm_memo; //一个客户有多个联系人 //一个联系人属于一个客户 //通过ORM方式表示,一个联系人只能属于某一个客户 //放置的是一的一方的对象。 private Customer customer; public Long getLkm_id() { return lkm_id; } public void setLkm_id(Long lkm_id) { this.lkm_id = lkm_id; } public String getLkm_name() { return lkm_name; } public void setLkm_name(String lkm_name) { this.lkm_name = lkm_name; } public String getLkm_gender() { return lkm_gender; } public void setLkm_gender(String lkm_gender) { this.lkm_gender = lkm_gender; } public String getLkm_phone() { return lkm_phone; } public void setLkm_phone(String lkm_phone) { this.lkm_phone = lkm_phone; } public String getLkm_mobile() { return lkm_mobile; } public void setLkm_mobile(String lkm_mobile) { this.lkm_mobile = lkm_mobile; } public String getLkm_email() { return lkm_email; } public void setLkm_email(String lkm_email) { this.lkm_email = lkm_email; } public String getLkm_qq() { return lkm_qq; } public void setLkm_qq(String lkm_qq) { this.lkm_qq = lkm_qq; } public String getLkm_position() { return lkm_position; } public void setLkm_position(String lkm_position) { this.lkm_position = lkm_position; } public String getLkm_memo() { return lkm_memo; } public void setLkm_memo(String lkm_memo) { this.lkm_memo = lkm_memo; } public Customer getCustomer() { return customer; } public void setCustomer(Customer customer) { this.customer = customer; }}
LinkMan.hbm.xml
转载地址:https://code100.blog.csdn.net/article/details/106242492 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月09日 03时39分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
编写 if 时不带 else,你的代码会更好!
2019-04-29
字节跳动总结的设计模式 PDF 火了,完整版开放下载!
2019-04-29
新款 iPad 写代码 真香,包邮送一个!
2019-04-29
7年,从“游戏少年”到大厂技术总监的逆袭之路
2019-04-29
超级全面的 SpringBoot 注解介绍,每一个用途都应该清晰
2019-04-29
排名前 16 的 Java 工具类,哪个你没用过?
2019-04-29
图解计算机结构与体系分类!!
2019-04-29
别人家的团队怎么用RabbitMQ:我总结的5点规范
2019-04-29
用动图讲解分布式 Raft
2019-04-29
再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报
2019-04-29
百度信息流和搜索业务中的弹性近线计算探索与应用
2019-04-29
RabbitMQ 高频考点
2019-04-29
编程高手是如何练成的?
2019-04-29
同时拿到BATJMD的Offer是怎样的一种体验?
2019-04-29
CPU深夜狂飙,一帮大佬都傻眼了...
2019-04-29
阿里一面:如何保证API接口数据安全?
2019-04-29
2W 字详解 Redis 6.0 集群环境搭建实践
2019-04-29