hibernate使用

说实话hibernate配置与使用随便百度一下都很多,但对于新手来说还是存在很多问题,我就是那个在网上复制代码然后运行,随后各种异常出现,配了很久才搞定,所以记录下

一、为什么我们要使用hibernate

hibernate用于访问数据库,我们直接通过Java类来操作数据库,是对JDBC的轻量级的对象封装,它是一个独立的对象持久层框架

二、hibernate 配置

   1、下载hibernate依赖包  下载地址[hibernate](http://hibernate.org/)

   2、添加hibernate jar包hibernate jar
      解压hibernate压缩包选择required包

这里写图片描述

这里写图片描述
3、在SRC下新建hibernate.cfg.xml文件

这里写图片描述
4、SRC下新建实体映射文件
这里写图片描述

三、通过实体类操作数据库

实体类属性需对应数据库字段

1、新建实体类
  Employee实体类
public class Employee {
    private int id;  
    private String firstName,lastName;  

    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getFirstName() {  
        return firstName;  
    }  
    public void setFirstName(String firstName) {  
        this.firstName = firstName;  
    }  
    public String getLastName() {  
        return lastName;  
    }  
    public void setLastName(String lastName) {  
        this.lastName = lastName;  
    }  
}

数据库字段
这里写图片描述

2、获取事物

Configuration cfg=new Configuration(); cfg.configure("hibernate.cfg.xml");//populates the data of the configuration file //creating seession factory object SessionFactory factory=cfg.buildSessionFactory(); //creating session object Session session=factory.openSession(); //creating transaction object Transaction t=session.beginTransaction();

3、操作数据库

1)、添加数据
Employee e1=new Employee();
e1.setId(100);
e1.setFirstName("Max1");
e1.setLastName("Su");
session.save(e1);
2)、删除数据

方式一

删除

注:参数二为int类型,如果表中存在多个相同ID会抛出org.hibernate.jdbc.BatchedTooManyRowsAffectedException

 方式二:Employee e1=new Employee();
       e1.setId(0); 
       session.delete(e1);

3)、更新数据

方式一:

Employee e1=new Employee();

e1.setId(1);

e1.setFirstName("121");

session.update(e1);;

方式二:

Employee user = (Employee)session.load(User.class,1);      

user.setName("周日");

session.update(user);

4)、查询数据

方式一:全部查询查询

Query query=session.createQuery("from Employee");

List user=query.list();

for(int i=0;i<user.size();i++){

    Employee  emp= (Employee)user.get(i);

    System.out.println("id="+e.getId() + "firstName="+e.getFirstName());

}

注:session.createQuery("from Employee"); 参数Employee为所对应的实体类而不是数据库表

方式二:分页查询

Query query=session.createQuery("from Employee"); //

query.setFirstResult(10);//开始行( 0开始)

query.setMaxResults(14);//结束行

List user=query.list();

for(int i=0;i<user.size();i++){

  Employee  emp= (Employee)user.get(i);  

  System.out.println("id="+e.getId() +  "firstName="+e.getFirstName());

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值