标签:ace obj charset 测试 维护 数据库表 enable password turn
CREATE TABLE `cst_customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT ‘客户编号(主键)‘,
`cust_name` varchar(32) NOT NULL COMMENT ‘客户名称(公司名称)‘,
`cust_source` varchar(32) DEFAULT NULL COMMENT ‘客户信息来源‘,
`cust_industry` varchar(32) DEFAULT NULL COMMENT ‘客户所属行业‘,
`cust_level` varchar(32) DEFAULT NULL COMMENT ‘客户级别‘,
`cust_address` varchar(128) DEFAULT NULL COMMENT ‘客户联系地址‘,
`cust_phone` varchar(64) DEFAULT NULL COMMENT ‘客户联系电话‘,
PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
创建相应的实体类 Customer.java
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;// 主键
private String custName;// 客户姓名
private String custSource; // 客户来源
private String custIndustry; // 所属行业
private String custLevel; // 客户级别
private String custAddress; // 地址
private String custPhone; // 电话
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCustName() {
return custName;
}
public void setCustName(String custName) {
this.custName = custName;
}
public String getCustSource() {
return custSource;
}
public void setCustSource(String custSource) {
this.custSource = custSource;
}
public String getCustIndustry() {
return custIndustry;
}
public void setCustIndustry(String custIndustry) {
this.custIndustry = custIndustry;
}
public String getCustLevel() {
return custLevel;
}
public void setCustLevel(String custLevel) {
this.custLevel = custLevel;
}
public String getCustAddress() {
return custAddress;
}
public void setCustAddress(String custAddress) {
this.custAddress = custAddress;
}
public String getCustPhone() {
return custPhone;
}
public void setCustPhone(String custPhone) {
this.custPhone = custPhone;
}
@Override
public String toString() {
return "Customer [id=" + id + ", custName=" + custName + ", custSource=" + custSource + ", custIndustry="
+ custIndustry + ", custLevel=" + custLevel + ", custAddress=" + custAddress + ", custPhone="
+ custPhone + "]";
}
}
创建对应的配置文件 Customer.hbm.xml
<?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>
<!--
class标签
name : 实体类的全限定名
table : 对应数据库的表名(如果类名和数据库表的名字一样,可以省略table配置)
-->
<class name="com.xiaoshitou.domain.Customer" table="cst_customer">
<!-- id标签:主键
name : 实体类中的id
column : 数据库中主键的名字
-->
<id name="id" column="cust_id">
<!-- gennerator class:主键的生成策略;native表示,主键由数据库自动维护 -->
<generator class="native"></generator>
</id>
<!-- property:主键以外的普通字段
name=>实体类中的成员变量,column=>表中的字段名 -->
<property name="custName" column="cust_name"></property>
<property name="custSource" column="cust_source"></property>
<property name="custIndustry" column="cust_industry"></property>
<property name="custLevel" column="cust_level"></property>
<property name="custAddress" column="cust_address"></property>
<property name="custPhone" column="cust_phone"></property>
</class>
</hibernate-mapping>
编写hiberna核心配置文件:一定要放在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>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 配置数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 显示sql -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化sql -->
<property name="hibernate.format">true</property>
<!-- create-drop:启动时会创建表,sessionFactory关闭时删除表,
create: 每次都会重新创建表,
update: 如果实体类和数据库的表字段不一样时,会修改数据库中的字段,保证实体类和数据库表是同步的,
validate: 如果实体类和数据库表字段不一致时,会报错 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 把实体类的配置文件加载到核心配置文件中 -->
<mapping resource="com/xiaoshitou/domain/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
编写测试类,使用hibernate来添加一条数据
/**
* 快速入门:利用hibernate添加一条数据
*/
@Test
public void test01() {
// 创造一个customer对象
Customer customer = new Customer();
customer.setCustName("东方科技");
customer.setCustLevel("VIP");
customer.setCustSource("朋友推荐");
customer.setCustIndustry("无人机");
customer.setCustAddress("东方1号路");
customer.setCustPhone("8221365");
// 利用hibernate完成保存
Configuration configuration = new Configuration();
configuration.configure();
// 创建sessionFactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 获取session
Session session = sessionFactory.openSession();
// 开启事务
Transaction tx = session.beginTransaction();
// 保存
session.save(customer);
// 提交事务,关闭资源
tx.commit();
session.close();
sessionFactory.close();
}
在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>
<!-- 使用c3p0连接池 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- 在数据库连接池中,最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 在数据库连接池中,最小连接数 -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- 如果连接池中,某个连接空闲时间超过设置的时间,将会被从连接池冲清除 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 每个3000秒检查,连接池中的空闲连接,单位秒 -->
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 配置数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 显示sql -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化sql -->
<property name="hibernate.format_sql">true</property>
<!-- create-drop:启动时会创建表,sessionFactory关闭时删除表,
create: 每次都会重新创建表,
update: 如果实体类和数据库的表字段不一样时,会修改数据库中的字段,保证实体类和数据库表是同步的,
validate: 如果实体类和数据库表字段不一致时,会报错 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 把实体类的配置文件加载到核心配置文件中 -->
<mapping resource="com/xiaoshitou/domain/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
标签:ace obj charset 测试 维护 数据库表 enable password turn
原文地址:http://www.cnblogs.com/xiaoshitoutest/p/7359908.html