博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate学习笔记02-- eclipse 下 hibernate+mysql 的实现。
阅读量:6317 次
发布时间:2019-06-22

本文共 3672 字,大约阅读时间需要 12 分钟。

hot3.png

hibernate 环境的配置步骤:

  1. 加入 hibernate 所需的 jar 包,并将这些 jar 添加到 project 中,如图:

    223447_z3dX_1474779.png

  2. hibernate.cfg.xml 的建立。hibernate 的 hibernate.cfg.xml 配置文件默认在 project/src 目录下,如图: 

    223533_FlEU_1474779.png

  3. hibernate.cfg.xml 中的内容如下(当然,这是从 hibernate 的参考文档中拷贝过来的,还未修改):

    
        
        
org.hsqldb.jdbcDriver        
jdbc:hsqldb:hsql://localhost        
sa        
        
        
1        
        
org.hibernate.dialect.HSQLDialect        
        
thread        
        
org.hibernate.cache.NoCacheProvider        
        
true        
        
update        
    

至此,hibernate 环境配置完成。

hibernate 与 mysql 集成:

  1. 添加支持 mysql 驱动的 jar 包,如下图:

    224113_cah4_1474779.png

    2. 修改 hibernate.cfg.xml 

        
org.hsqldb.jdbcDriver        
jdbc:hsqldb:hsql://localhost        
sa        
                        
        
org.hibernate.dialect.HSQLDialect

    修改为 mysql 的连接方式:

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

至此,hibernate + mysql 环境搭建完成(当然,要在 mysql 数据库下建立一个名为 hibernate 的数据库)。

下面我们测试一下:

  1. 建立以下包和类 ,并修改 hibernate.cfg.xml

    224617_2BQa_1474779.png

  2. 贴下代码:

    2.1 Student.java

package com.hibernate.model;public class Student {	private int id;	private String name;	private int age;	public int getAge() {		return age;	}	public int getId() {		return id;	}	public String getName() {		return name;	}	public void setAge(int age) {		this.age = age;	}	public void setId(int id) {		this.id = id;	}	public void setName(String name) {		this.name = name;	}}

    2.2 Student.hbm.xml

    2.3 hibernate.cfg.xml

    
        
        
com.mysql.jdbc.Driver        
jdbc:mysql://localhost/hibernate        
root        
root         
         
        
        
org.hibernate.dialect.MySQLDialect        
        
        
        
org.hibernate.cache.NoCacheProvider        
        
true        
        
update        
    

    2.4 StudentTest

package com.hibernate;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import com.hibernate.model.Student;public class StudentTest {	public static void main(String[] args) {		Student s = new Student();		s.setId(1);		s.setName("s1");		s.setAge(18);				//cfd.configure(),configure()不写参数默认查找src目录下的hibernate.cfg.xml		Configuration cfd = new Configuration();		//buildSessionFactory()产生一个SessionFactory工厂		SessionFactory sf = cfd.configure().buildSessionFactory();		Session session = sf.openSession();		session.beginTransaction();		session.save(s);		session.getTransaction().commit();		session.close();		sf.close();	}}

运行下 StudentTest 类中的 main 方法,则在名为 hibernate 数据库中新创建一个名为 student 的表并添加数据,如下图:

225331_EXuN_1474779.png

225331_xkZY_1474779.png

---------------------------------------------------------------------------------------------------------------------

注:

hibernate 使用操作数据库的步骤:

  1. 通过 Configuration 类的 configure() 查找配置文件 hibernate.cfg.xml  。

  2. 获取配置文件后通过 buildSessionFactory() 来创建 SessionFactory 。

  3. 通过 SessionFactory  的 openSession() 创建一个 Session 。

  4. 通过 Session 的 beginTransaction() 开启一个事物 。

  5. 调用 Session 的 save() 、update() 、delete() 等方法执行数据库操作 。

  6. 通过 Session 的 getTransaction() 获取当前正在操作的事物,再通过把这个事物的 commit() 将数据更新至数据库 。

  7. 最后关掉 Session 、 SessionFactory  。

                Configuration cfd = new Configuration(); 		SessionFactory sf = cfd.configure().buildSessionFactory();		Session session = sf.openSession();		session.beginTransaction();		//session.save(s); 调用session的增删改查方法		session.getTransaction().commit();		session.close();		sf.close();

end。

转载于:https://my.oschina.net/u/1474779/blog/499086

你可能感兴趣的文章
Go语言基础之结构体
查看>>
SpringCloud:Eureka Client项目搭建(Gradle项目)
查看>>
ATL使用IE控件,并且屏蔽右键
查看>>
Jenkins
查看>>
linux下使用screen和ping命令对网络质量进行监控
查看>>
数据库设计技巧
查看>>
css定位概述
查看>>
segment
查看>>
Linux信号 编程
查看>>
Box2D自定义重力
查看>>
python购物车
查看>>
面试/编程
查看>>
打造一个上传图片到图床利器的插件(Mac版 开源)
查看>>
iOS横竖屏
查看>>
thinkphp判断更新是否成功
查看>>
Do While ... Loop 与 Do Until ... Loop 的区别
查看>>
【Linux】查询某个字符串出现次数
查看>>
高效使用jquery之一:请使用'On'函数
查看>>
ERP环境检测工具设计与实现 Environment Detection
查看>>
不要在构造中做太多事情,不然有时候会出现有意思的代码~
查看>>