Hibernate是一种开源的ORM框架技术,ORM(Object Relational Mapping)
Hibernate对JDBC进行轻量级的封装,使得java程序员可以随心所欲的使用面向对象的编程思想来操作数据库
hibernate所扮演的角色,如下图:
先大致了解一下hibernate的执行流程是什么样的:
下面我用IntelliJ IDEA 来演示建立一个Hibernate程序:
1.根据适当步骤,建立一个maven项目
2.我们要为这个项目添加Jar包,需要在pom.xml中的dependencies标签中加入:
这里我用的hibernate和mysql标准较低,一定要注意,如果你的jdk版本较低,引用高版本的配置会出现错误。
3.建立如下简单的目录结构
4.配置一下项目构造,并加入Hibernate功能
这里同样要注意version,设置java目录为Sources,resources为Resources
5.引入数据库
这里要注意Driver配置,还有要Test Connection一下。
6.使用hibernate的Persistence创建实体
注意package选到com.lyf.po下,这里用单表演示。勾选好一个表,OK完成
一个实体就被建立好了。
7.检查一下hibernate.cfg.xml文档.确保以设置好想要实现的属性。牢记一定要设置好链接到数据库的username和password,不然无法与数据库建立连接
下面演示对数据库中该表的增删改查:
package com.lyf.dao;
import com.lyf.po.User;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import java.util.List;
/**
* Created by fangjiejie on 2017/4/16.
*/
public class UserDao implements IUserDao {
private Configuration cfg;
private SessionFactory sf;
public UserDao() {
cfg=new Configuration().configure("hibernate.cfg.xml");
sf=cfg.buildSessionFactory();
}
@Test
public void add() {
Session session=sf.openSession();
Transaction tran=session.getTransaction();
tran.begin();
User user=new User();
user.setUsername("芳芳");
user.setPassword("666666");
session.save(user);
tran.commit();
session.close();
}
@Test
public void delete() {
Session session=sf.openSession();
Transaction tran=session.getTransaction();
tran.begin();
User user=session.load(User.class,8);
session.delete(user);
tran.commit();
session.close();
}
@Test
public void update() {
Session session=sf.openSession();
Transaction ts=session.getTransaction();
ts.begin();
User user=session.load(User.class,12);
user.setUsername("lisa");
user.setPassword("hhhhhhh");
session.update(user);
ts.commit();
session.clear();
}
@Test
public void query() {
Session session=sf.openSession();
Query query=session.createQuery("from User3");
List<User> list=query.list();
for(User u:list){
System.out.printf("%s---%s\n",u.getUsername(),u.getPassword());
}
session.close();
}
}
小知识:
什么是POM?
POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。在Maven中,当谈到Project的时候,不仅仅是一堆包含代码的文件。一个Project往往包含一个配置文件,包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的URL,项目依赖,以及其他。它包含了所有与这个项目相关的东西。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。