Hibernate操作步骤

(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>

              <propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

              <propertyname="connection.url">jdbc:mysql:///demo</property>

              <propertyname="connection.username">root</property>

              <propertyname="connection.password">123</property>

              <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>

              <propertyname="hibernate.hbm2ddl.auto">create</property>

              <propertyname="hibernate.show_sql">true</property>

              <mappingresource="com/hbsi/domain/User.hbm.xml"/>

       </session-factory>

</hibernate-configuration>

 

(4)映射文件---

User----  User.hbm.xml  

<hibernate-mapping

       package="com.hbsi.domain">    -----指定Java实体类的包名

       <classname="User" table="user">   -----说明实体类怎样映射成表

              <idname="id">

                     <generatorclass="native"/>

              </id>

              <propertyname="name"/>

              <propertyname="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实体类。原因在配置文件没有指明映射文件所在位置

<mappingresource="com/hbsi/domain/User.hbm.xml"/>

(3)Table“demo.user” doesnot exist:

create table user(

id int auto_increment;

name varchar(20);

birthday date;

);

在配置文件增加配置:

<propertyname="hbm2ddl.auto">create</property>

create-drop:在hibernate初始化时创建表,程序运行结束时表会被删除

create:在hibernate初始化时会创建表格。

update:只是根据映射文件去和数据库中的表对应起来,如果不一致就更新表结构

validate:校验映射文件和数据库中的表是不是能够对应起来,不能对应不更新表,会报错。

 

(4)表建好,表格中没有记录。

insert                              s.save(user)

 

<propertyname="show_sql">true</property>

事务

Transaction tx=s.beginTransaction();

...

tx.commit();

MyISAM

InnoDB     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值