hibernate框架的简单实例
来源:互联网 发布:微拍网站源码带采集 编辑:程序博客网 时间:2024/05/20 11:52
**
hibernate框架的简单实例
**
Hibernate是一个成熟的对象关系映射框架,它对JDBC进行了比较完善的封装。它将POJO与数据库表建立映射关系,是一个全自动的ORM框架。hibernate可以自动生成SQL语句,自动执行,使得我们可以随心所欲的使用对象编程思维来操纵数据库,完成数据持久化的重任。
配置hibernate框架需要以下几步:
1.加入hibernate必须的jar包
由于需要和数据库打交道,所以引入数据库驱动jar包:
mysql-connector-java-5.1.40-bin.jar包
- 配置hibernate的基本配置信息:
<?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.username">root</property> <property name="hibernate.connection.password">123456</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernettest</property> <!--配置hibernate基本信息 --> <!-- sql方言 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- 是否打印sql语句 --> <property name="hibernate.show_sql">true</property> <!-- 格式化sql语句 --> <property name="format_sql">true</property> <!-- 生成数据表的策略 --> <property name="hbm2ddl.auto">create</property> <!-- 映射 --> <mapping resource="com/object/User.hbm.xml"/> </session-factory></hibernate-configuration>
创建持久化类User,用于封装用户信息:
import java.sql.Date;public class User { private Integer id; private String username; private String sex; private Integer age; private String address; private Date createtime; public User(int id, String username, String sex, int age, String address, Date createtime) { super(); this.id = id; this.username = username; this.sex = sex; this.age = age; this.address = address; this.createtime = createtime; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; }}
3.创建对象-关系映射文件:User.hbm.xml配置文件
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated 2017-8-20 20:56:32 by Hibernate Tools 3.5.0.Final --><hibernate-mapping> <class name="com.object.User" table="USER"> <id name="id" type="int"> <column name="ID" /> <generator class="native"/> </id> <property name="username" type="java.lang.String"> <column name="USERNAME" /> </property> <property name="sex" type="java.lang.String"> <column name="SEX" /> </property> <property name="age" type="int"> <column name="AGE" /> </property> <property name="address" type="java.lang.String"> <column name="ADDRESS" /> </property> <property name="createtime" type="java.sql.Date"> <column name="CREATETIME" /> </property> </class></hibernate-mapping>
最后一步通过hibernate API编写访问数据库的代码:
import java.sql.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;public class testUser { @Test public void test() { SessionFactory sessionfactory=null; Configuration configuration=new Configuration().configure(); sessionfactory=configuration.buildSessionFactory(); Session session=sessionfactory.openSession(); Transaction transaction=session.beginTransaction(); User user=new User(1, "jack", "nan", 22, "chongqingshi", new Date(new java.util.Date().getTime())); session.save(user); transaction.commit(); session.close(); sessionfactory.close(); }}
运行测试,控制台打印信息如下:
Hibernate: drop table if exists USER八月 20, 2017 10:31:12 下午 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnectionINFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@5cc69cfe] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.Hibernate: create table USER ( ID integer not null auto_increment, USERNAME varchar(255), SEX varchar(255), AGE integer, ADDRESS varchar(255), CREATETIME date, primary key (ID) ) engine=InnoDB八月 20, 2017 10:31:12 下午 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnectionINFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@319dead1] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode.八月 20, 2017 10:31:12 下午 org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSourcesINFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@2b52c0d6'Hibernate: insert into USER (USERNAME, SEX, AGE, ADDRESS, CREATETIME) values (?, ?, ?, ?, ?)八月 20, 2017 10:31:13 下午 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl stopINFO: HHH10001008: Cleaning up connection pool [jdbc:mysql:///hibernettest]
至此,表示实例能正常运行。
阅读全文
1 0
- hibernate框架的简单实例
- Hibernate框架,简单实例
- Hibernate框架的搭建和第一个简单的实例
- Hibernate框架的搭建和第一个简单的实例
- 简单的hibernate实例
- Spring+Springmvc+Hibernate框架搭建,简单实例
- Spring+Springmvc+Hibernate框架搭建,简单实例
- 一个简单的Hibernate实例
- hibernate的简单配置实例
- 一个简单的hibernate实例(之一)
- 简单的struts+spring+hibernate配置实例
- 世界上最简单的Hibernate 基础实例
- Struts+Spring+Hibernate整合的简单实例
- springmvc+hibernate的一个简单实例
- 一个简单的Hibernate登录实例
- Hibernate 简单 的 增删改查 实例
- springmvc+hibernate的一个简单实例
- Hibernate ORM框架的简单介绍
- MySQL学习笔记
- 和距离topCapHeight后的1横排像素。
- 弄一个博客记录一下大学的学习生活
- java之Thread Dump分析
- Linux基本操作
- hibernate框架的简单实例
- Keras实现小数量集图片分类——6类别Birds数据集分类
- 【POJ】3040
- SpringBoot中配置使用Druid数据库连接池
- 重定位和链接脚本
- linux下使用libmad库实现mp3文件的解码、播放
- 过滤器和拦截器
- ubuntu16.04下udev权限问题
- 328. Odd Even Linked List