1.1 CRM介绍
- CRM(Customer Relationship Management)客户关系管理,是利用相应的信息技术以及互联网技术来协调企业与顾客间在销售、营销和服务上的交互,向客户提供创新式的个性化的客户交互和服务的过程。其最终目标是将面向客户的各项信息和活动集成起来,组建一个以客户为中心的企业,实现对面向客户的活动的全面管理。
1.2 功能模块划分
2.1 需求介绍
保存一个客户到数据库的客户表中
2.2 开发包和版本介绍
2.3 搭建Hibernate开发环境
2.3.1 第一步:拷贝必备的jar包到开发目录
2.3.2 第二步:创建数据库和实体类
- 持久化类是应用程序中的实体类,这里的持久化是指类的对象能够被持久化保存到数据库中。Hibernate使用普通Java对象(Plain Old Java Object),即POJO的编程模式来进行持久化。POJO类中包含的是与数据库表相对应得各个属性,这些属性通过getter和setter方法来访问,对外部隐藏了内部的实现细节。
2.3.3 第三步:编写映射配置文件(xml)
- 实体类Customer目前还不具备持久化操作的能力,而Hibernate需要知道实体类Customer映射到数据库Hibernate中的哪个表,以及类中的哪个属性对应数据库表中的哪个字段,这些都需要在映射文件中配置。在实体类Customer所在包中,创建一个Customer.hbm.xml的映射文件,在该文件中定义了实体类Customer的属性是如何映射到cst_customer表的列上。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--
配置表与类的映射
name 配置类的名称
table 表名(数据库概念为了和程序概念加以区分数据库中的对象都要大写)
-->
<class name="com.gdxh.entity.Customer" table="cst_customer">
<!--属性与字段的配置-->
<!--主键-->
<id name="id" column="cust_id">
<!--主键自增策略-->
<!--MySQL支持主键自增-->
<!--hibernate让数据库自己决定主键的生成方法,因为MySQL是自增的所以可以配置该属性-->
<generator class="native"/>
</id>
<!--
普通字段
type="java.lang.String"
type="string"
如果类型映射正确是可以不用指定的
-->
<property name="name" column="cust_name"/>
<property name="source" column="cust_source"/>
<property name="industry" column="cust_industry"/>
<property name="level" column="cust_level"/>
<property name="phone" column="cust_phone"/>
<property name="mobile" column="cust_mobile"/>
</class>
</hibernate-mapping>
2.3.4 第四步:编写主配置文件(hibernate.cfg.xml)
- Hibernate的映射文件反映了持久化类和数据库的映射信息,而Hibernate的配置文件则主要用来配置数据库连接以及Hibernate运行时所需要的各个属性的值。在项目的src下创建一个名称为hibernate.cfg.xml的文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- 数据库的连接 -->
<session-factory>
<!-- session对象:连接数据库 操作数据库 -->
<!-- 连接数据库 -->
<!-- 数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- url -->
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/hibernate_test?characterEncoding=UTF-8</property>
<!-- 用户名 -->
<property name="hibernate.connection.username">root</property>
<!-- 密码 -->
<property name="hibernate.connection.password">root</property>
<!-- 显示执行的SQL语句 把你的SQL语句以一行的行输出到控制台 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化SQL语句 格式化后进行多行展示 -->
<property name="hibernate.format_sql">true</property>
<!-- 自动管理数据库表结构 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 配置c3p0 -->
<!--<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>-->
<!-- 通知session对象现在有多个类与表进行映射 -->
<mapping resource="com/gdxh/entity/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
2.3.5 第五步:实现保存操作