第一个Hibernate程序(HelloWorld)
2011-12-05 21:09
309 查看
1.1.1. 创建Eclipse工程并引入相关的jar包
新建Java工程,并添加如下jar包:1,{hibernate_home}/ hibernate3.jar
2,{hibernate_home}/lib/required/*.jar
3,{hibernate_home}/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar
1, 数据库对应的JDBC驱动(例如mysql-connector-java-5.1.5-bin.jar)
还可以加入日志相关的jar包(不加也可以):
1, log4j-1.2.15.jar
2, slf4j-log4j12-1.6.1.jar
1.1.2. 创建持久化对象:User
1.1.3. 创建对象-关系映射文件:User.hbm.xml
Customer类属性 | Java类型 | Hibernate类型 | Cutomers字段名 | Sql类型 |
Name | java.lang.String | string | NAME | Varchar(12) |
age | int | int | age | INT |
Sex | char | character | SEX | CHAR(1) |
Married | boolean | boolean | married | bit |
Des | java.lang.String | text | des | CLOB |
Pic | byte[] | binary | pic | BLOB |
Birthday | java.sql.Date | date | BIRTHDAY | DATE |
registeredTime | java.sql.TimeStamp | timestamp | REGISTERED_TIME | TIMESTAMP |
1.1.4. 创建 Hibernate 配置文件:hibernate.cfg.xml
创建表、JavaBean、写映射文件1.1.5. 通过 Hibernate API 编写访问数据库的代码
编程步骤1, 获取 Configuration 对象。
2, 获取 SessionFactory 对象。
3, 获取 Session,打开事务。
4, 用面向对象的方式操作数据库。
5, 关闭事务,关闭 Session。
增删改查功能的实现代码
(1)创建一个实体类user
(2)将hibernate所需jar包构建项目中
Mysql驱动
Hibernate3.jar
Lib/required/所有的jar文件
Lib/jpa/jar文件
(3)配置文件
hibernate.cfg.xml
hibernate.properties
驱动、url、用户名、密码、方言、自动创建表格、将hibernate工作过程中产生的sql语句输出
以及映射文件的位置
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///demo</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
(4)映射文件---
User---- User.hbm.xml
<hibernate-mapping
package="com.hbsi.domain"> -----指定Java实体类的包名
<class name="User" table="user"> -----说明实体类怎样映射成表
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday"/>
</class>
</hibernate-mapping>
(5)写Java代码
Configuration cfg=new Configuration();
cfg.configure();//完成hibernate的初始化--读取配置文件
//SessionFactory对象----DriverManager
SessionFactory sf=cfg.buildSessionFactory();
//得Session对象
Session s=sf.openSession();
Transaction tx=s.beginTransaction();
User user=new User();
user.setName("Tom");
user.setBirthday(new Date());
s.save(user);
tx.commit();
s.close();
可能出现问题:
(1)驱动找不到
(2)unknown entity:不认识User实体类。原因在配置文件没有指明映射文件所在位置
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
(3)Table“demo.user” doesnot exist:
create table user(
id int auto_increment;
name varchar(20);
birthday date;
);
在配置文件增加配置:
<property name="hbm2ddl.auto">create</property>
create-drop:在hibernate初始化时创建表,程序运行结束时表会被删除
create:在hibernate初始化时会创建表格。
update:只是根据映射文件去和数据库中的表对应起来,如果不一致就更新表结构
validate:校验映射文件和数据库中的表是不是能够对应起来,不能对应不更新表,会报错。
(4)表建好,表格中没有记录。
insert s.save(user)
<property name="show_sql">true</property>
事务
Transaction tx=s.beginTransaction();
...
tx.commit();
相关文章推荐
- Hibernate---第一个helloworld程序 (XML版本, annotation版本)
- phpstorm的第一个程序:helloworld
- Xcode4.2的第一个iPhone程序HelloWorld
- hadoop2.5的第一个HelloWorld程序—单词计数(WordCount.)
- 我的第一个android程序 HelloWorld
- 第一个hibernate程序
- 第一个Hibernate程序
- 第一个OC程序 HelloWorld
- 2-创建第一个QT程序——helloworld
- Qt学习笔记:第一个程序HelloWorld
- 03.第一个小程序HelloWorld
- 第一个Java程序HelloWorld
- 【 D3.js 入门系列 --- 1 】 第一个程序HelloWorld
- Java学习2——HelloWorld(编写第一个java程序)
- 第一个在eclipse中的java程序(HelloWorld)
- Hibernate第一个程序流程(2016-3-20)
- 第一个HelloWorld程序,遇到java.lang.RuntimeException: Unable to start activity ComponentInfo
- Android学习笔记之我的第一个Android程序——HelloWorld
- 安卓开发之——第一个程序HelloWorld!