自学hibernate框架以及自己总结的一些经验(一)

来源:互联网 发布:mysql while do 编辑:程序博客网 时间:2024/06/05 13:41

最近,android的行情不行啊,工作比较难找,于是乎那就自学自学java的hibernate框架。总之,学了是没有坏处。

那么,我们就来学学Hibernate到底是怎么用的?

长话短说,我们上手就是干!

1.新建java项目,在根路径下新建lib文件夹并导入jar包,选中所有的jar右击buildpath,变成“小奶瓶”(注意点:假如我们在一台机上使用的是tomcat8,把项目考到另外一台使用tomcat的tomcat7机上时,可能会发现运行不出来,这时我们需要右击buildpath,remove掉报错的jar包,这就OK了)

需要的jar包网盘地址:

2.新建实体类

举个例子:新建一个User类

代码:

public class User {/*private int uid;*/private String uid;private String username;private String password;public User() {super();}/*public User(int uid, String username, String password) {super();this.uid = uid;this.username = username;this.password = password;}public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}*/public String getUsername() {return username;}public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

3.新建实体类的映射文件

User类的映射文件,后缀名.hbm.xml

代码:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.boom.user.User" table="t_user"><id name="uid" column="uid"><!-- <generator class="native"></generator> --><generator class="uuid"></generator></id><property name="username" column="username"></property><property name="password" column="password"></property></class></hibernate-mapping>

4.新建config配置文件(相当于net中的数据连接配置文件)

每个项目都有一个config文件,hibernate.cfg.xml

代码:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!--配置数据库信息 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///test</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password"></property><!--配置hibernate信息 --><property name="hibernate.show_sql">true</property><property name="hibernate.format_sql">true</property><property name="hibernate.hbm2ddl.auto">update</property><!--配置数据库方言 --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!--引入映射文件 --><mapping resource="com/boom/user/User.hbm.xml"></mapping></session-factory></hibernate-configuration>

5.为了简便避免重复创建sessionfactory和session,我们需要新建一个工具类,放到预编译中去(用static静态方法)

代码:

public class HibernateUtils {static Configuration cfg=null;static SessionFactory sessionFactory=null;//静态代码段实现(在代码预加载时创建而且只创建一次)//注意static中只运行static中的代码static{cfg=new Configuration();cfg.configure();sessionFactory=cfg.buildSessionFactory();}//提供返回sessionFactorypublic static SessionFactory getSessionFactory(){return sessionFactory;}}


6.新建一个测试用例(简单的写写,没有考虑异常回滚,毕竟是自学的第一步,代码要慢慢提升质量)

代码:

public class HibernateDemo {@Testpublic void testAdd() {// 第一步 加载hibernate核心配置文件// 到src下面找到名称是hibernate。cfg.xml// 在hibernate里面封装对象//Configuration cfg = new Configuration();//cfg.configure();// 第二步 创建SessionFactory对象// 读取hibernate核心配置文件内容,创建sessionFactory// 在过程中,根据映射关系,在配置数据库里面把表创建//SessionFactory sessionFactory = cfg.buildSessionFactory();SessionFactory sessionFactory=HibernateUtils.getSessionFactory();// 第三步 使用SeesionFactory创建session对象// 类似于Session session = sessionFactory.openSession();// 第四步 开启事务Transaction tx = session.beginTransaction();// 第五步 写具体逻辑CRUD操作// 添加的功能User user = new User();user.setUsername("666");user.setPassword("1234456");session.save(user);// 第六步 提交事务tx.commit();// 第七步 关闭资源session.close();sessionFactory.close();}}


7.在Mysql数据库中记得要新建一个test数据库


个人总结下:

初试Hibernate,Hibernate就是一个ORM框架,从实体类到数据库中的表,就不经让我想起net中的code first是从数据库中的表得到类和映射文件。在映射文件中,类的表名对应着数据中的名称,类的属性对应着数据库中的字段。Config是用来连接数据库的配置文件和net的没啥区别也有一个配置文件包含着驱动包名和用户密码等信息。后面也会对测试用例中的代码进行优化,比如异常了我们需要通过回滚。

一句话总结:

在一个config配置文件连接数据库的环境下,一个类通过自己的映射文件到一个数据库中的一张表,并能成功的插入一条数据。


0 0
原创粉丝点击