一.CRUD操作简述
既然hibernate这个框架是对数据库的访问,也就应该有对数据库的CRUD操作,即对数据的增加,删除,修改,查找。
二.回想下java的jdbc操作流程
我们以前用过jdbc来访问数据库,简单回想下以前的过程。
1. 加载驱动
2.建立连接
3.定义sql,发生sql语句
4.执行sql语句获得执行结果
5.处理返回结果
6.关闭资源
简单来说,也差不多是这几步骤,那hibernate框架是哪些流程呢?
三.hibernate的操作流程
- 首先需要建立数据库,这里我们要先建立数据库,在配置hibernate.cfg.xml需要在里面指出用哪个数据库。
create table hibernate(
//省略具体代码
);
2.建立数据源连接,我们需要hibernate.cfg.xml把使用哪个数据库,mysql还是oracle,还有用户名和密码等信息写在这里面。
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
3.建立一个实体类Teacher,写一些数据,相当于你要创建个表就参考这里面的属性。
4.再创建一个获取SessionFactory的单例类,也就是把数据存储到数据库里去。
5.再有一个类来实现hibernate的CURD操作。
四.hibernate的CRUD操作
一.插入操作
public void test(){
Session sess = HibernateUtils.getSession(); //打开一个新的session
sess.beginTransaction();
User u = new User();
u.setName("张三");
sess.save(u);
session.getTransaction().commit();
}
二.删除操作
下面是通过删除该id来删除数据
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
user u = new user();
u.setId(1);
session.delete(u);
session.getTransaction().commit();
三.更新操作
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
user u = (user)session.get(user.class,1);//获得id=1的数据
if(u != null){
u.setName("李四");
u.setAge(18);
session.update(u);
session.getTransaction().commit();
四.查询操作
hibernate查询方式有6种:HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询。
下面我就举HQL查询例子:
HQL是hibernate自己的一套查询语言,具有跨数据库的优点。
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("from user where age=23"); //此处user是类名,而不是数据库的表名,select * 不写
List<user> users = query.list();
for (user user : users) {
System.out.println(user.getId()+" "+user.getName()+" "+user.getAge());
}