学习hibernate2——基本搭建

学习一个框架我觉得首先还是从项目学起,所以我从接触hibernate开始就尝试自己搭建一个hibernate项目。
本期项目的云盘地址:链接:http://pan.baidu.com/s/1jI750Vk 密码:9vgi

学习hibernate2——基本搭建_第1张图片
项目的结构

这里面主要 有两个配置文件和一个实体类

hibernate.cfg.xml

hibernate.cfg.xml是hibernate配置文件的标准命名,具体后面会讲,也可以将该配置文件命名为其他名字。


 

    
        
            com.mysql.jdbc.Driver
        
        
            jdbc:mysql://localhost:3306/h4
        
        root
        
        org.hibernate.dialect.MySQLDialect 
        true
              
    

从这个配置文件可以看到,大致就是配置了相关的数据库连接的一些属性,包括登录数据库的用户名密码已经jdbc的jar包等等的属性
解释一下几个属性:
show_sql:是在控制台上显示sql语句,方便追踪
dialect:方言 ,代表你现在用的是什么数据库
mapping:对应映射的xml文件

该文件一般情况下放在根目录下,采用hibernate.cfg.xml这个标准命名。具体原因可以看一下代码。

//初始化hibernate的配置文件
Configuration configuration = new Configuration().configure();
学习hibernate2——基本搭建_第2张图片
可以看到configure有多个重载的方法
学习hibernate2——基本搭建_第3张图片
进入configure无参方法

从上面这个图可以看到,调用无参的configure方法,就是默认调用configure(String url)的方法,并传入"/hibernate.cfg.xml"这个参数进去

创建一个Users的实体类,跟数据库中的表一一对应。这就是ORM中的O,也就是Object。
在实体类中记住最重要是要创建一个无参构造方法。因为hibernate在生成实体类的时候是采用反射机制,所以必须有一个无参的构造函数。

Users.hbm.xml


   

    
        
            
            
        
        
            
        
        
            
        
        
            
        
    

该配置文件中的id对应的是表的主键PK,而其他的property则对应表的其他属性。

测试

写一个测试类,有一个测试方法可以把users持久化。

public static void addUsers(){
    //这是4.x之前创建SessionFactory的方法,4.x之后采取另外一种方法
    //SessionFactory sf = new Configuration().configure().buildSessionFactory();
    
    SessionFactory sf = null;
    Configuration configuration = new Configuration().configure();
    
    ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
            .applySettings(configuration.getProperties())
            .buildServiceRegistry();
    
    sf = configuration.buildSessionFactory(serviceRegistry);
    
    Session s = null;   
    Transaction t = null;
    
    try{   
        //准备数据   
        Users um = new Users();   
        
        um.setUsername("h3");   
        um.setPassword("1234");
        um.setAge(1);   
        s = sf.openSession();   
        t = s.beginTransaction();   
        s.save(um);
       
        //Users users = (Users) s.get(Users.class, 1);
        //System.out.println(users.toString());
        t.commit();   
   }catch(Exception err){   
        t.rollback();   
        err.printStackTrace();   
  }finally{   
        s.close();   
  }
}

public static void main(String[] args) {
        
        Test.addUsers();
        
}

运行的结果如下

学习hibernate2——基本搭建_第4张图片
可以看到打印出来SQL语句,结果没有报错

查看数据库表

学习hibernate2——基本搭建_第5张图片
增加了一条记录

本节课就到这里啦
另外说明,本节课的源代码是跟下一节的源代码合在一起了,文件名为hibernate_2.zip

你可能感兴趣的:(学习hibernate2——基本搭建)