Hibernate 笔记第一天

CRM

CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,向客户提供创新式的个性化客户交互和服务的过程。其最终目标是将面向客户的各项信息和活动集成起来,组建一个以客户为中心的企业,实现对面向客户的活动的全面管理。

CRM的功能模块

CRM基本功能模块,包括:客户信息管理、联系人管理、商机管理、统计分析等。

客户信息管理

对客户信息统一维护,客户是指存量客户或拟营销的客户,通过员工录入形成公司的"客户库"是对公司最重要的数据资源。

联系人管理

对客户的联系人信息统一管理,联系人是指客户企业的联系人,即企业的业务人员和客户的那些人在打交道。

客户拜访管理:

业务员(用户)要开发客户需要去拜访客户,客户拜访信息记录了业务员与客户沟通交流方面的不足、采取的策略不当 、有待改进的地方或值得分享的沟通技巧等方面的信息。

Hibernate

Hibernate框架是当今主流的Java持久层框架之一,由于它具有简单易学、灵活性强、扩展性强等特点,能够大大地简化程序的代码量,提高工作效率,因此受到广大开发人员的喜爱。

Hibernate是一个开发源代码的ORM(Object Relational Mapping, 对象关系映射)框架,它对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库。

Hibernate具有以下几点优势:

  • Hibernate对JDBC访问数据库的代码做了轻量级封装,大大简化了数据访问层繁琐的重复性代码,并且减少了内存消耗,加快了运行效率。
  • Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM框架实现,它很大程度的简化了DAO(Data Access Object,数据访问对象)层编码工作。
  • Hibernate的性能非常好,映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系。
  • 可扩展性强,由于源代码的开源以及API的开放,当本身功能不够用时,可以自行编码进行扩展。

SSH中HIbernate
Customer类的xml文件配置

<hibernate-mapping>
	<!--
		class标签:用来建立类和表的映射
		* name 属性: 类中的全路径
		* table 属性 : 表名(如果类名和表名是一致的,那么table属性客户省略)
		* catalog 属性: 数据库名称,可以省略
	-->
	<class name="cn.itcast.domain.Customer" table="cst_customer">
		<!--
			id标签:用来建立类中的属性与表中的主键字段对应
			* name 属性: 类中的属性名
			* column 属性: 表中字段名(如果类中的属性名和表中的字段名一致,那么省略column)
			* length 属性: 字段的长度
			* type 属性: 类型。写Java数据类型,Hibernate数据类型(默认),SQLl类型
		-->
		<id name="cust_id column="cust_id">
			<!-- 主键生成策略 -->
			<generator class="native"/>
		</id>
		<!-- 建立类中的普通属性与表中的字段对应 -->
		<!--
			property标签:用来建立类中的普通属性与表中的字段对应
				* name属性: 类中的属性名
				* column 属性: 表中字段名(如果类中的属性名和表中的字段名一致时,省略column)
				* length 属性: 字段的长度
				* type 属性: 类型。写JAVA数据类型,Hibernate数据类型(默认),SQL类型
		-->
		<property name="cust_name" column="cust_name"/>
		<property name="cust_mobile" column="cust_mobile"/>
</hibernate-mapping>

hibernate.cfg.xml

hibernate配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate Configuration DTD 3.0//EN"
		"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
		<hibernate-configuration>
			<session-factory>
				<!-- 必要的配置信息:连接数据库的基本参数 ->
				<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
				<property name="hibernate.connection.username">root</property>
				<property name="hibernate.connection.password">123</property>
				<!-- Hibernate的属性 -->
				<!-- Hibernate的方言:作用,根据配置的方言生成相应的SQL语句 -->
				<property name="hibernate.dialet">org.hibernate.dialet.MySQLDialect</property>
				<!-- Hibernate显示SQL语句 -->
				<property name="hibernate.show_sql">true</property>
				<!-- Hibernate格式化SQL语句 -->
				<property name="hibernate.format_sql">true</property>
				<!-- Hibernate的hbm2ddl(数据定义语言:create drop alter ...)属性 -->
				<!--
					hbm2ddl.auto的取值
						* name :不用Hibernate自动生成表。
						* create : 每次都会创建一个新的表.(自动生成表,测试)
						* create-drop :每次都会创建一个新的表,执行程序结束后删除这个表.(测试)
						* update : 如果数据库中有表,使用原来的表,如果没有表,创建一个新表,可以更新表结构
						* validate : 只会使用原有的表,对映射关系进行校验
				-->
				<property name="hibernate.hbm2ddl.auto">update</property>
				<!-- Hibernate加载映射 -->
				<mapping resource="cn/itcast/domain/Customer.hbm.xml"/>
				</session-factory>
			</hibernate-configuration>

Hibernate配置文件 一种是properties属性文件格式 一种是XML格式的配置文件,XML配置文件

SessionFactory Session工厂对象

SessionFactory具有以下特点:

  • 它是线程安全的,它的同一个实例能够供多个线程共享
  • 它是重量级的,不能随意的创建和销毁它的实例。
    HibernateUtils HIbernate工具类
    SessionFactory.openSession();
    可以设置连接池 (connection.provider_class)

Session

Session是应用程序与数据库之间交互操作的一个单线程对象,是Hibernate运行的中心,它的主要功能是为持久化对象提高创建、读取和删除的功能,所有持久化对象必须在session的管理下可以进行持久化操作。
获取session实例有两种方式:
一种是openSession()方法,另一种是通过getCurrentSession()方法。

Transaction

Transaction主要用于管理事务,它是Hibernate的数据库事务接口,且对底层的事务接口进行了封装。
Session执行完数据库操作后,要使用Transaction接口的commit()方法进行事务提交,才能真正的将数据操作同步到数据库中。
在持久化操作后,必须调用Transaction接口的commit()方法和rollback()方法,如果没有开启事务,那么每个Session的操作,都相当于一个独立的操作。

以上内容均来自黑马程序员 Hibernate第一天PDF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值