`

hibernate的初体验

阅读更多
 
 hibernate初级入门,实现增删改查
1. 添加数据库表user
CREATE TABLE user (
   id  int(11) NOT NULL AUTO_INCREMENT ,
   username  varchar(50)  DEFAULT NULL ,
   age  int(11) DEFAULT NULL ,
   PRIMARY KEY (id)
);
2.创建pojo类User.java
 
package com.bobo.domain;
import java.io.Serializable;
//domain对象/JavaBean/pojo (plain old/ordinary java object)简单java对象
//hibernate需要序列化对象 这样可以唯一的对应数据库的一条记录
public class User implements Serializable{
 private static final long serialVersionUID = 1L;
 private Integer id;
 private String userName;
 private Integer age;
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getUserName() {
  return userName;
 }
 public void setUserName(String userName) {
  this.userName = userName;
 }
 public Integer getAge() {
  return age;
 }
 public void setAge(Integer age) {
  this.age = age;
 }
}
3.配置user表和对象User的关系映射配置,配置文件:User.hbm.xml
 <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
        <class name="com.bobo.domain.User">
         <id name="id" column="id" type="java.lang.Integer">
             <!--主键生成策略-->
             <generator class="increment"></generator>
        </id>
       <property name="userName" column="username" type="java.lang.String"/>
       <property name="age" column="age" type="java.lang.Integer"/>
</class>
</hibernate-mapping>
 
4.配置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="dialect">org.hibernate.dialect.MySQLDialect</property>
      <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="connection.url">jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8</property>
      <property name="connection.username">root</property>
      <property name="connection.password">root</property>
  
      <property name="show_sql">true</property>
      <!--加载类与数据库表映射配置-->
      <mapping resource="com/bobo/domain/User.hbm.xml"/>
 </session-factory> 
</hibernate-configuration>       
5.初始化配置文件的工具类
package com.bobo.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * 初始化配置工具类,获取MySessionFactory对象,确保只有一个,因为它很好资源 
 *
 */
final public class MySessionFactory {
    private static SessionFactory sessionFactory = null;
    private MySessionFactory(){
    }
    static{
      sessionFactory = new Configuration().configure().buildSessionFactory();
    }   
    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }
}
 6.写测试类TestMain.java
package com.bobo.view;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.*;
import com.bobo.domain.User;
import com.bobo.util.MySessionFactory;
public class TestMain {
 public static void main(String[] args) {
  //添加用户
  //addUser();
  //更新用户
  updateUser();
  
 }
 //删除用户
 public static void deleteUser() {
     Session session = MySessionFactory.getSessionFactory().openSession();
     Transaction tx = session.beginTransaction();
     User user = (User)session.load(User.class, 3);
     session.delete(user); //删除操作 delete from User where id=?
     tx.commit();
     session.close();
 }
 //更新用户
 public static void updateUser() {
     SessionFactory sessionFactory = MySessionFactory.getSessionFactory();
    Session session = sessionFactory.openSession();
    Transaction tx = null;
    try{
         tx = session.beginTransaction();
         User user = (User) session.load(User.class, 3);//执行select 操作select user0_.id as id1_0_0_, user0_.username as username2_0_0_, user0_.age as age3_0_0_ from User user0_ where user0_.id=?
         user.setAge(19);//执行了update操作 update User set username=?, age=? where id=?
         tx.commit();
  }catch(Exception e){
        if(tx != null) tx.rollback();
        throw new RuntimeException(e.getMessage());
  }finally{
     if(session != null && session.isOpen())
      session.close();
  }
 }
 //添加用户
 public static void addUser() {
      //1.初始化hibernate配置
      Configuration cfg = new Configuration().configure();
     //2.创建一个SessionFactory
     SessionFactory sessionFactory = cfg.buildSessionFactory();
     //3.获取一个session对象
     Session session = sessionFactory.openSession();
     //4.开启事务
     Transaction tx = session.beginTransaction();
     //5.插入操作
     User user = new User();
     user.setUserName("bobo");
     user.setAge(20);
     session.save(user);
     //6.提交事务
     tx.commit();
     //7.关闭资源
    session.close();
  }
}
 

 

 

0
0
分享到:
评论

相关推荐

    Hibernate1

    对 Hibernate 初体验 1.新建一个java工程,工程名为Hiberante1 2.导入相应的jar包 1)hibernate需要导入这些包 2)因为我们需要操作数据库所以要导入数据库的包,我用的mysql数据库 3.创建数据库以及表 ...

    Hibernate Service Register机制初体验

    **标题:“Hibernate Service Register机制初体验”** 在Java开发领域,Hibernate是一个广泛应用的持久化框架,它极大地简化了数据库操作。Hibernate的核心在于其强大的对象关系映射(ORM)能力,而Service ...

    hibernate学习课件

    1. **Hibernate初体验**: Hibernate的基本使用通常从配置开始,包括设置hibernate.cfg.xml文件来指定数据库连接信息,以及实体类的映射文件(hbm.xml)定义对象与表的对应关系。在初步接触中,你将学习如何创建...

    Spring+Hibernate+Acegi 的初次体验

    在本文中,我们将探讨如何整合Spring、Hibernate和Acegi框架,构建一个安全的J2EE应用程序。Acegi是Spring Security的前身,它提供了一套强大的访问控制和认证机制,适用于复杂的权限管理需求。 首先,我们要了解...

    Hibernate 3.6.9 官方汉化版教程

    总结来说,《Hibernate 3.6.9 官方汉化版教程》是一份详尽的指南,无论你是初涉ORM的新手,还是寻求提升的资深开发者,都能从中获益良多。通过学习,你将能更好地理解和应用Hibernate,提高你的Java开发技能。

    Hibernate Eclipse开发必备包

    "Hibernate Eclipse开发必备包"就是专门为Eclipse用户准备的一系列工具和库,旨在优化Hibernate在Eclipse中的开发体验。 这个压缩包可能包含以下关键组件: 1. **Hibernate Tools**:这是Eclipse的一个插件,提供...

    一个简单的hibernate helloworld

    【标题】"一个简单的hibernate helloworld"指的是在Java编程环境中使用Hibernate框架进行的初次实践,这个项目是为了帮助开发者快速理解并上手Hibernate。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发...

    hibernate3.6.1_docs

    总的来说,Hibernate 3.6.1官方文档是一份全面、详实的参考资料,无论你是初次接触Hibernate的新手,还是希望进一步提升技术水平的开发者,都能从中受益匪浅。通过深入学习和实践,你将能够熟练地驾驭Hibernate,...

    hibernate-reference-3.1.1.pdf

    一、引言与初次应用体验 在《hibernate-reference-3.1.1.pdf》文档中,开篇便引导读者进入Hibernate的世界,从一个简单的应用示例入手,逐步深入地介绍了Hibernate的核心概念和技术细节。首先,文档通过“第一个...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    这个系统采用了经典的Java技术栈,包括Struts1.2、Hibernate3.0、Spring2和DWR,这些都是在21世纪初非常流行的技术组合。 1. **Struts1.2**:Struts是Apache软件基金会下的一个MVC框架,主要用于构建企业级Java Web...

    java hibernate_struts分页

    本文将深入探讨如何在使用Hibernate和Struts框架时实现分页功能,以便在大型应用中有效地管理数据展示,提升用户体验。 首先,让我们了解一下Hibernate。Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用...

    hibernate分页

    【hibernate分页】是Java Web开发中一个常见的需求,特别是在处理大量数据时,为了提高用户体验和系统性能,通常需要实现数据的分页显示。Hibernate作为一款强大的ORM(对象关系映射)框架,提供了方便的数据分页...

    Hibernate3读书管理系统!

    - **数据填充**:除了创建表,脚本可能还用于导入初始数据,如预设的一些书籍信息,以便用户在初次使用时就有数据可查。 总结起来,这个读书管理系统利用Java Swing创建GUI界面,提供直观的用户交互,同时通过...

    提升Hibernate性能的魔方——IronTrack SQL.pdf

    当开发者初次接触Hibernate时,他们通常会寻找方法来监控Hibernate自动生成的SQL语句。在Hibernate提供的基本SQL监控功能之外,更专业的需求可以通过安装额外的监控工具来实现,例如IronTrack SQL。该工具不仅可以...

    EXt2.1+sturts2.0+spring2.5+hibernate

    这些技术在2000年代末至2010年代初是非常流行的,它们共同构成了一个强大的后端和前端应用框架,用于构建企业级的Web应用程序。下面将分别介绍这四个组件及其在实际项目中的作用。 1. EXT JS 2.1:EXT JS是一个基于...

    Struts2.1.8+Spring3.0.2+hibernate3.5.1

    这个组合在2010年代初非常流行,用于构建高效且可维护的企业级应用。 Struts2是Struts1的升级版,提供了更灵活的MVC架构,支持更多拦截器和模板技术。Struts2.1.8版本引入了增强的Action配置,支持OGNL表达式语言,...

    头歌springboot初体验

    在"头歌springboot初体验"中,我们可以探讨以下几个关键知识点: 1. **起步依赖(Starter Dependencies)**:Spring Boot通过起步依赖管理项目中的依赖。例如,如果你想使用Spring MVC进行Web开发,只需添加`spring...

    Roller初体验

    这篇博文主要介绍了博主在初次接触Roller时的体验,包括安装、配置和使用过程中的关键步骤。博主通过个人实践,详细讲述了如何将Roller部署到Tomcat服务器上,并分享了在源码层面的一些探索,这对于想要深入了解...

Global site tag (gtag.js) - Google Analytics