java web的hibernate使用

资源地址:https://download.csdn.net/download/yu_duan_hun/10554339

1.怎么导入,下载上面的资源,导入libs目录下全部资源到相同目录

这个不好描述,官网不能登录,找了好久才找到一个可以用的完整包,总之可以直接用,是hibernate5版本的。

2.干嘛用

用于简化数据库操作,不然总要jdbc写复杂sql

3.原理

就是通过配置实体类,操作hibernate时间接操作数据库。

4.配置

说实话因为自学,配置文件干什么用,怎么用,放在哪个目录的问题很头痛,这里讲解一下:
hibernate.cfg.xml:配置sql驱动以及各个子配置文件位置,我这里用的mysql,各种驱动方式请自行百度。这个放在src的根目录,不要放在包里面,放在最外面。

xx.hbm.xml:用于配置实体类和数据表映射,这个可以任意,放哪里都行,要和hibernate.cfg.xml配置的位置匹配。
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">
<hibernate-configuration>
    <session-factory>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.url">jdbc:mysql://localhost:12001/jspdb</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <mapping resource="com/a/bean/News.hbm.xml" />
    </session-factory>
</hibernate-configuration>

username标签内对应数据库用户名,password对应数据库密码,
url对应jdbc,这里列举部分:

Microsoft SQL Server

jdbc:microsoft:sqlserver://<server_name>:<port>

Microsoft SQL Server 2005

jdbc:sqlserver://<server_name>:<port>

Oracle

jdbc:oracle:thin:@//<host>:<port>/ServiceName

MySQL(默认端口3306):

jdbc:mysql://<host>:<port>/<database_name>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

这两句固定,不用配置

这个对应实体类对数据表的映射,简单说就是有多少个表,这里就要写多少条,注意前面包名的格式要用斜线分开,不能用点。

<mapping resource="com/a/bean/News.hbm.xml" />

根据上面映射位置,此文件放在com.a.bean.News.hbm.xml
News.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-3-6 16:03:59 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<!-- 映射到数据库news表-->
    <class name="com.a.bean.News" table="news">
        <id name="id" type="int">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="title" type="java.lang.String">
            <column name="title" />
        </property>
        <property name="content" type="java.lang.String">
            <column name="content" />
        </property>
    </class>
</hibernate-mapping>

此处注意type,基本数据类型可直接写,引用数据类型要写全包名。name对应实体类的名称,column的name对应数据表名称,主键要写native(跨数据库)标注,也可设置为identity,如果oracle要设置为sequence。如不要自增,请设置为assigned或者uuid.hex,uuid.string随机.

5.实体类

1.@Id标注主键
2.@GeneratedValue标注主键get
3.注解要用javax注解不要用hibernate的
4.实际数据库表要设置为主键时此字段,并设置为自增
5.如不要自增,请设置为assigned或者uuid.hex,uuid.string随机

猜你喜欢

转载自blog.csdn.net/yu_duan_hun/article/details/81135509