本文共 3121 字,大约阅读时间需要 10 分钟。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,是一个关系数据库ORM框架。
Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 (来自百度百科)
ORM是Object Relational Mapping的简写,是一种程序技术,它实现了对象模型和关系模型之间的转换。
从理论效果上来说,它其实创建了一个可在编程语言里使用的“虚拟对象数据库”。
1.JPA(JAVA Persistence API):通过JDK 5.0注解或XML描述对象-关系表的映 射关系(只有接口规范)
2.Hibernate:流行ORM框架,通过对象-关系映射配置,可以完全脱离底层SQL3.MyBatis 本是apache的一个开源项目 iBatis,支持普通 SQL查询,存储过程和高级映射的优秀持久层框架4.Apache DBUtils 、Spring JDBCTemplate
1.实现了对JDBC的封装,大大简化了持久层代码繁琐的重复性代码
2.简化了编码的工作3.使用反射的机制4.因为是一个轻量级的框架,性能非常好
准备工作
1.导包 2.编写JavaBean 3.配置*.hbn.xml 4.配置hibernate.cfg.xml
1.导包 核心包 必须包 驱动包2.编写JavaBeancreate database hibernate;use hibernate;create table t_user( id int auto_increment primary key, username varchar(20), password varchar(20));public class User { private int uid; private String username; private String password; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "uid=" + uid + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; }}3.配置*.hbn.xml4.配置核心文件 com.mysql.jdbc.Driver jdbc:mysql///hibernate robin robin true true update org.hibernate.dialect.MySQLDialect thread
接下来就是测试了
public void demo() { // 加载hibernate核心配置文件 Configuration configuration = new Configuration(); configuration.configure(); // 创建SessionFactory封装对象 // 这个关系中,可能会根据映射关系创建表 SessionFactory sessionFactory = configuration.buildSessionFactory(); // 使用SessionFactory创建Session // 类似Connection Session session = sessionFactory.openSession(); // 开启事务 Transaction transaction = session.beginTransaction(); // crud User user = new User(); user.setUsername("robin"); user.setPassword("123"); // 调用session进行添加操作 session.save(user); // 提交事务 transaction.commit(); // 关闭资源 session.close(); sessionFactory.close(); }
转载于:https://blog.51cto.com/11815805/2164196