创建Hibernate的例子的步骤
来源:互联网 发布:cydia软件源闪退 编辑:程序博客网 时间:2024/05/17 05:57
创建Hibernate的例子的步骤
创建Hibernate的配置文件
创建持久化类
创建对象-关系映射文件
通过Hibernate API编写访问数据库的代码
Hibernate配置文档的基本配置
<?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"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration> <session-factory> <property name="connection.username">root</property> <property name="connection.password">12345678</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="connection.url"> jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8 </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="show_sql">true</property> <property name="format_sql">true</property> <property name="hbm2ddl.auto">create</property> <mapping resource="./Students.hbm.xml" /> </session-factory></hibernate-configuration>
connection.username是我们要连接的数据库的用户名
connection.password是密码
connection.driver_class是指定数据库的jdbc驱动,我用的是mysql的数据库,com.mysql.jdbc.Driver就是它的驱动的;类名
connection.url是访问数据库的地址,这里三个/的写法是一种简写,后面的参数是防止乱码的问题
dialect是方言,指定了我们使用MySql的具体方言+
以上是基本配置
show_sql一般设为true
format_sql也设为true
hbm2ddl是ddl语句的生成策略
这是一些常用属性
持久化类的创建
根据前边的配置文件,建立数据库hibernate,然后里边的结构如下,然后根据数据库来建立持久化类,一些注意事项也在代码中的注释给出
import java.util.Date;//学生类public class Students { // 持久化类的设计原则要遵循JavaBean的设计原则 // 1.公有的类 // 2.提供公有的不带参数的默认构造方法 // 3.属性私有 // 4.属性setter/getter封装 private int sid; // 学号 private String sname; // 姓名 private String gender; // 性别 private Date birthday; // 出生日期 private String address; // 地址 public Students() { // 公有不带参数的构造方法 } public Students(int sid, String sname, String gender, Date birthday, String address) { // 为了方便生成对象,再写一个带参数的构造方法 // 右键->Source->Generate Constructor using Fields // super(); this.sid = sid; this.sname = sname; this.gender = gender; this.birthday = birthday; this.address = address; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { // 方便测试,写一个toString方法 // Source->Generate toString return "Students [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", birthday=" + birthday + ", address=" + address + "]"; }}
对象-关系映射文件
然后根据前一篇文章写到的生成对象-关系映射文件的方法,来得到Students.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"><!-- Mapping file autogenerated by MyEclipse Persistence Tools --><hibernate-mapping> <class name="Students" table="students" catalog="hibernate"> <id name="sid" type="java.lang.Integer"> <column name="SID" /> </id> <!-- id这个不可以写为property,把key-property改为了property,把composite删掉 --> <property name="sname" type="java.lang.String"> <column name="SNAME" length="20" /> </property> <property name="gender" type="java.lang.String"> <column name="GENDER" length="10" /> </property> <property name="birthday" type="java.util.Date"> <column name="BIRTHDAY" length="10" /> </property> <property name="address" type="java.lang.String"> <column name="ADDRESS" length="30" /> </property> </class></hibernate-mapping>
通过Hibernate API编写访问数据库的代码
需要使用到Junit单元测试
大体的框架如下:
public class StudentsTest { @Before public void init(){ } @After public void destory(){ } @Test public void testSaveStudents(){ }}
需要有before来进行初始化操作,在执行测试方法之前执行。after用来在测试方法执行完之后释放资源。
在初始化的代码中要实现以下功能:
创建配置对象,是Configuration类的一个对象
创建服务注册对象
创建会话工厂对象,用配置对象来生成
然后使用会话工厂对象的openSession方法打开会话
然后打开事务
具体的实现步骤如下:
@Beforepublic void init(){ //创建配置对象 Configuration config = new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //创建会话工厂对象 sessionFactory = config.buildSessionFactory(serviceRegistry); //创建会话对象 session = sessionFactory.openSession(); //开启事务 transaction = session.beginTransaction();}
释放资源的部分应该先提交事务,然后关闭会话和关闭会话工厂
总的代码如下
public class StudentsTest { private SessionFactory sessionFactory; private Session session; private Transaction transaction; @Before public void init(){ //创建配置对象 Configuration config = new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //创建会话工厂对象 sessionFactory = config.buildSessionFactory(serviceRegistry); //创建会话对象 session = sessionFactory.openSession(); //开启事务 transaction = session.beginTransaction(); } @After public void destory(){ transaction.commit();//提交事务 session.close();//关闭会话 sessionFactory.close();//关闭会话工厂 } @Test public void testSaveStudents(){ //生产学生对象 Students s = new Students(1,"张三丰","男",new Date(),"武当山"); //无需编写sql语句,因为我们用的hibernate是一个ORM框架,只需要保存这个对象就好了 session.save(s);//保存对象进入数据库 }}
运行测试代码可以看到已经在数据库添加了记录
- 创建Hibernate的例子的步骤
- 创建Hibernate项目的步骤
- Hibernate 创建session的步骤
- 手动创建数据库的步骤和例子
- 细说创建Hibernate程序的四大步骤
- hibernate的开发步骤
- hibernate的开发步骤
- 一个Hibernate的例子
- 一个Hibernate的例子
- Hibernate的简单例子
- hibernate criteria的例子
- Hibernate的简单例子
- DataGuard的创建步骤
- 菜单的创建(步骤)
- dwr的创建步骤
- 创建BO的步骤
- 创建Spinner的步骤
- 创建link的步骤
- jar包打包成exe
- 如何实现word2010长英文单词自动换行并添加连字符?
- 函数 dup 与 dup2
- 解决kaggle邮箱验证不能confirm的问题
- Hiernate 注解版的 关联查询
- 创建Hibernate的例子的步骤
- 【caffe-Windows】caffe在Windows下训练深度学习网络并测试(以mnist为例)
- 第五章 消息持久化
- python语法——变量,字符串常用方法,数字
- mongodb,redis,mysql简要对比
- Emscripten-WebAssembly
- java复习(二)
- IntelliJ IDEA报错class is never used
- python正则