Hibernate——创建Hibernate项目

来源:互联网 发布:越南语发音翻译软件 编辑:程序博客网 时间:2024/06/11 00:04

1、基本使用

1.1引用jar包(因为它不是sun公司的)

hibernate官网下载(点击打开链接),下载时注意版本,不同版本之间可能存在功能不一样的区别

记得数据库驱动jar包


1.2全局配置文件:hibernate.cfg.xml

在java Resources下面创建一个资源文件(右击项目——》source Folder),新建全局配置文件(右击新创建的资源文件——》new——》other——》file——》hibernate.cfg.xml)

它在创建的时候,需要手动创建数据库,所以需要你在写之前先去创建一个数据库

找到方言包(Libraries——》hibernate-core-版本信息——》org.hibernate.dialect——》找对应的方言包)方言决定数据库引擎,数据库引擎决定数据库效率,方言的选择,根据其数据库版本决定


<?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的配置信息 --><hibernate-configuration><!-- 具体的配置信息: 四本一言 四大基本项:驱动、url、用户名、密码 一大方言:为什么需要方言?因为不同的数据库,sql语句不一样,需要用方言来标记区分 要根据数据库版本进行选择 --><session-factory>    <!-- 1、驱动类名全称 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- 2、数据库的url --><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_day1?characterEncoding=UTF-8</property><!-- 3、用户名 --><property name="hibernate.connection.username">root</property><!-- 4、密码 --><property name="hibernate.connection.password">123</property><!-- 5、方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property><!-- 标记ddl的操作方式:create:每次都是新建 update:只要表结构没有发生变化,就不会新建,一般实用这种 create-drop: --><property name="hibernate.hbm2ddl.auto">update</property><!-- 显示自动生成的sql语句 --><property name="hibernate.show_sql">true</property><!-- 格式化sql语句 --><property name="hibernate.format_sql">true</property></session-factory></hibernate-configuration>



1.3 写出映射类——数据库的表对应的类

package com.tf.domain;import java.util.Date;/** * @author tf* @time 2017年11月8日* @version 1.0* 备注:用户表,映射类代表的是数据库的表* 注意:get和set的写法要标准,命名要规范* 命名规则:必须遵守,写错了就会报错* 命名规范:约束,习惯*/public class User {private int id;private String username;private String password;private Date time;public int getId() {return id;}public void setId(int id) {this.id = id;}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;}public Date getTime() {return time;}public void setTime(Date time) {this.time = time;}public User() {super();}}

1.4 写出映射文件:类名.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-11-8 15:54:09 by Hibernate Tools 3.5.0.Final --><!-- hibernate的映射文件的配置 --><hibernate-mapping><!--当前的类的设置package:包,当前类所在的包name:当前的类名table:表名  -->    <class name="com.tf.domain.User" table="tb_user">    <!-- 主键的标记    name:属性名称    column:字段名称,如果省略表示属性和字段名称一样 -->        <id name="id" type="int" column="id">        <!-- 主键生成策略        常用属性        class:标记主键的生成方式        取值:        1、native:移植性较好 ,可以根据数据库的类型自动选择        2、assigned:自定义主键值        3、uuid:随机主键        4、foreign:外键        5、identity:自增,MySQL        6、sequence:自增,Oracle        7、increment:手动自增,每次新增都查询最大的主键值,加1,但是不安全        -->            <generator class="native" />        </id>        <!-- 联合主键,有多个就写多少个 -->        <!-- <composite-id></composite-id> -->        <!-- 属性的设置        name:属性名称        cloumn:字段名称,如果省略表示属性和字段名称一样        length: 数据库的表的字段的长度,字符串类型长度默认255        type:属性的数据库类型,可以省略-->        <property name="username" type="java.lang.String"/>        <property name="password" type="java.lang.String"/>        <property name="time" type="java.util.Date"/>    </class></hibernate-mapping>

1.5 将映射文件添加到全局配置中

<?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的配置信息 --><hibernate-configuration><!-- 具体的配置信息: 四本一言 四大基本项:驱动、url、用户名、密码 一大方言:为什么需要方言?因为不同的数据库,sql语句不一样,需要用方言来标记区分 要根据数据库版本进行选择 --><session-factory>    <!-- 1、驱动类名全称 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- 2、数据库的url --><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_day1?characterEncoding=UTF-8</property><!-- 3、用户名 --><property name="hibernate.connection.username">root</property><!-- 4、密码 --><property name="hibernate.connection.password">123</property><!-- 5、方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property><!-- 标记ddl的操作方式:create:每次都是新建 update:只要表结构没有发生变化,就不会新建,一般实用这种 create-drop: --><property name="hibernate.hbm2ddl.auto">update</property><!-- 显示自动生成的sql语句 --><property name="hibernate.show_sql">true</property><!-- 格式化sql语句 --><property name="hibernate.format_sql">true</property>


        <!-- 映射文件的配置:可以有多个 -->
<mapping resource="com/tf/domain/User.hbm.xml"/> </session-factory>
</hibernate-configuration>

1.6 使用hibernate(使用单元测试)实现对象——》数据的存储
package com.tf.test;import java.util.Calendar;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.junit.Test;import com.tf.domain.User;/** * @author tf * @time 2017年11月8日 * @version 1.0 备注:测试类, hibernate的使用 注意: */public class MyTest {// Hibernate的基本使用@Testpublic void test1() {// 1、创建配置对象Configuration config = new Configuration().configure();// 2、创建Session工厂对象SessionFactory factory = config.buildSessionFactory();// 3、获取Session对象Session session = factory.openSession();// 4、操作数据库User user = new User();user.setPassword("123");user.setUsername("tf");user.setTime(Calendar.getInstance().getTime());// 返回的值是主键值System.out.println("保存" + session.save(user));// 5、关闭session.close();}}


右击——》Run As ——》JUnit Test



此时,可以查看数据库