(28)java web的hibernate使用

Posted 洋子哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(28)java web的hibernate使用相关的知识,希望对你有一定的参考价值。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

ORM: Object Realtion Mapping

 

一,导入jar包

  

二,创建数据库,建表

  

三,创建class,和表的对应关系映射文件

  Account.class

public class Account {

	/* 一定要生成 setter getter 方法,否则包异常 */
	private int accountId;
	private String name;
	private int age;
	private String nickName;

	public int getAccountId() {
		return accountId;
	}

	public void setAccountId(int accountId) {
		this.accountId = accountId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

}

   Account.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="gy.hibernate">

	<class name="Account" table="accounts">

		<!-- 主键 ,映射 -->
		<id name="accountId" column="id">
			<generator class="native" />
		</id>

		<!-- 非主键,映射 -->
		<property name="name" column="name"></property>
		<property name="age" column="age"></property>
		<property name="nickName" column="nick_name"></property>
	</class>

</hibernate-mapping>

 

四,配置hibernate 配置文件

  hibernate.cfg.xml

<?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-configuration>
	<session-factory>
		<!-- 数据库连接配置 -->
		<!-- 配置数据库驱动 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<!-- 配置数据库url -->
		<property name="hibernate.connection.url">jdbc:mysql:///hibernate_db</property>
		<!-- mysql账号 -->
		<property name="hibernate.connection.username">root</property>
		<!-- mysql密码 -->
		<property name="hibernate.connection.password"></property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
		
		<!-- 调试打印日志 -->
		<property name="hibernate.show_sql">true</property>
		
		<!-- 加载所有映射 -->
		<mapping resource="gy/hibernate/Account.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 

五,代码调用

  public String register() {
		
    System.out.println("开始注册-------------------------");

    Account account = new Account();
    // account.setAccountId(1);
    account.setName("xiao gang");
    account.setAge(15);
    account.setNickName("xg");

    // 获取加载配置文件的管理类对象
    Configuration config = new Configuration();
    config.configure(); // 默认加载src/hibenrate.cfg.xml文件
    // 创建session的工厂对象
    SessionFactory sf = config.buildSessionFactory();
    // 创建session (代表一个会话,与数据库连接的会话)
    Session session = sf.openSession();
    // 开启事务
    Transaction tx = session.beginTransaction();
    // 保存-数据库
    session.save(account);
    // 提交事务
    tx.commit();
    // 关闭
    session.close();
    sf.close();

    return SUCCESS;
  }

 

以上是关于(28)java web的hibernate使用的主要内容,如果未能解决你的问题,请参考以下文章

hibernate主键生成策略使用UUID报出如下警告:org.hibernate.id.UUIDHexGenerator - HHH000409: Using org.hibernate.id.(代

Hibernate框架入门

请简述在JAVA Web应用开发中使用Hibernate操作数据库的步骤?

(29)java web的hibernate使用-crud的dao

no session 异常:org.hibernate.LazyInitializationException: could not initialize proxy - no Session(示例代

[原创]java WEB学习笔记76:Hibernate学习之路---Hibernate介绍,hibernate 环境的搭建