java web从零单排第十九期《Hibernate》初入Hibernate

来源:互联网 发布:土耳其航空 知乎 编辑:程序博客网 时间:2024/06/05 12:49

JBoss公司的Hibernate开源项目为企业级开发中的数据持久层技术注入了新鲜的血液。它不仅对跨数据库,事务封装,ORM映射,延迟加载等这些细节技术提供了完善的解决方案,也对一些在程序开发中容易忽略问题进行了良好的封装和规划。

(1)通过使用ORM-Object-relational mapping映射,以Bean形式操作数据库中的记录。

(2)强大的一级,二级缓存机制结合数据库连接池POOL,大大提高了CURD (create,update,read,delete)的操作效率。

(3)在SQL维护性hibernate也设计得非常优秀,可以将系统中大量的sql语句放入XML文件进行统一管理。

(4)Spring+Hibernate范型是一个强大的组合,这样可以免去写大量DAO代码,减少了工作量,而且维护性大大增强。

(5)减少了那些大量重复的JDBC代码,使用Hibernate后,省去了很多重复性的工作。

(6)项目融入Hibernate后,可以更好地理解面向对象编程,以面向对象的设计方式程序的架构。

 

1.用MyEclipse开发第一个Hibernate实例:

1.1在开始之前安装好自己的数据,我的是SQLSERVER2008数据库,通过cmd建表:

-U 后面接用户名 -P后面接密码

1.2.创建使用数据库:

这里创建立一个hibernate_1数据库,并且开始对此数据库进行操作。

 

1.3新建表first

1.4查看表是否创建成功

2.新建工程Hibernate

点击Add Hibernate Capablities

点击finish就完成我们的一大步了

3.配置hibernate.cfg.xml

 

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   --><hibernate-configuration>    <session-factory>        <property name="show_sql" >true</property>          <property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hibernate_1</property>       <property name="connection.username">sa</property>       <property name="connection.password">57829707</property>       <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>              <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>              <mapping resource="User.hbm.xml"/>    </session-factory></hibernate-configuration>

对于第一个属性<property name="show_sql">true</property> 可以在控制台显示sql语句,在开发期间便于观察数据的改变。

 

<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>数据库方言,根据数据库种类的不同,这里写的是不一样,查看hibernate文档,下面列举出方言:

<mapping resource>映射资源我们下面来完成:

新建User.hbm.xml:

 

代码如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="com.hibernate.model.User" table="first">    <id name="username" column="username" type="string">    <generator class="increment"><!-- 主键id的生成方式 -->    </generator>    </id> <property name="password" column="password" type="string"></property>   </class></hibernate-mapping>


id name="username" :因为username是我们设定好的主键,所以要用id标签;

column="username":我们自定义的字段名,最好与数据库中的字段名相同;

type="string":在数据库中username为varchar类型,在java与之相对的是string类型,关于数据的类型对象,后几期会有讲解。

generator class="increment":主键的生成方式,由于主键是自动生成的,所以会有其很多生成方式,我们这里采用的是递增方式。

 

<property name="password">除了主键以外的属性我们都用property标签来指定,具体跟前面一样。

 

下面我们新建com.hibernate.model包和User类:

package com.hibernate.model;public class User {private String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}private String password;}


到这里我们的配置都已经完成,下一期我们进入hibernate核心的实现。


原创粉丝点击