①、ORM框架/持久层框架 jdbc的一个框架;
②、object reference mapping 对象关系映射;
③、 通过管理对象来改变数据库中的数据 ,通过管理对象来操作数据库;
优势:跨数据库的无缝移植
2. 如何在项目中添加hibernate支持(手动添加)1 添加hibernate相关依赖
2 在resource目录下添加hibernate.cfg.xml(核心配置文件)
① 添加DTD支持
② 添加Hibernate的配置
(1) 数据库相关
(connection.username|connection.password|connection.url|connection.driver_class|dialect)
(2) 调试相关(show_sql|format_sql)
3 在开发阶段再创建实体类和实体映射文件(*.hbm.xml)
实体必须实现Serializable接口
小结:hibernate.cfg.xml(1) public class QueryDemo { public static void main(String[] args) { //1、对框架核心配置文件进行建模 Configuration configure = new Configuration().configure("/hibernate.cfg.xml"); //2、获取sessionFactory工厂 SessionFactory sessionFactory = configure.buildSessionFactory(); //3、获取session会话 Session session = sessionFactory.openSession(); //4、开启事务(查询不需要事务) //5、session操作对象 //6、提交事务(查询不需要事务) //开始查询 List list = session.createQuery("from User").list(); for (Object object : list) { System.out.println(object); } //7、关闭session session.close(); } }
②结果显示
2、新增①新增代码
package com.mwy.test;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.mwy.entity.User;
public class AddDemo {
public static void main(String[] args) {
//1、对框架核心配置文件进行建模
Configuration configure = new Configuration().configure("/hibernate.cfg.xml");
//2、获取sessionFactory工厂
SessionFactory sessionFactory = configure.buildSessionFactory();
//3、获取session会话
Session session = sessionFactory.openSession();
//4、开启事务(查询不需要事务)
Transaction transaction = session.beginTransaction();
//5、session操作对象
//6、提交事务(查询不需要事务)
//新增
User user=new User();
user.setBirthday(new Date(System.currentTimeMillis()));//生日
user.setCreateDatetime(new Timestamp(System.currentTimeMillis()));//日期时间
user.setId(123);
user.setRealName("陆小凤");
user.setRemark("武侠剧");
user.setSex("男");
user.setUserName("xxxx");
user.setUserPwd("666666");
session.save(user);
transaction.commit();
//7、关闭session
session.close();
}
}
②结果显示
(1)未新增前的数据库
(2)新增后
由于数据库id为自增长,所以设置的id=123并没有实现
③程序员自己控制:assigned
修改User.hbm.xml将
改为
得到结果
3、修改①修改代码
package com.mwy.test;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.mwy.entity.User;
public class EditDemo {
public static void main(String[] args) {
//1、对框架核心配置文件进行建模
Configuration configure = new Configuration().configure("/hibernate.cfg.xml");
//2、获取sessionFactory工厂
SessionFactory sessionFactory = configure.buildSessionFactory();
//3、获取session会话
Session session = sessionFactory.openSession();
//4、开启事务(查询不需要事务)
Transaction transaction = session.beginTransaction();
//5、session操作对象
//6、提交事务(查询不需要事务)
User user = session.get(User.class, 123);
user.setRealName("mwy");
transaction.commit();
//7、关闭session
session.close();
}
}
②结果显示
4、删除①、删除代码·
package com.mwy.test;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.mwy.entity.User;
public class DelDemo {
public static void main(String[] args) {
//1、对框架核心配置文件进行建模
Configuration configure = new Configuration().configure("/hibernate.cfg.xml");
//2、获取sessionFactory工厂
SessionFactory sessionFactory = configure.buildSessionFactory();
//3、获取session会话
Session session = sessionFactory.openSession();
//4、开启事务(查询不需要事务)
Transaction transaction = session.beginTransaction();
//5、session操作对象
//6、提交事务(查询不需要事务)
//第一种方法:
//User user = session.get(User.class, 123);
//session.delete(user);
//第二种方法:
User user=new User();
user.setId(123);
session.delete(user);
transaction.commit();
//7、关闭session
session.close();
}
}
②结果显示(删除id为123)
结束!



