Hibernate(3.0)_Hibernate单表的增删改查

在项目中搭建好了Hibernate框架之后,就可以直接用Hibernate进行数据库的一些操作了

搭建数据库

首先先在数据库中搭建一个简单的测试数据库
  新建一个新的数据库Hibernate_Project,字符集选UTF-8,排序默认

Hibernate(3.0)_Hibernate单表的增删改查_第1张图片

  然后新建一张表


  并保存为Student

Hibernate(3.0)_Hibernate单表的增删改查_第2张图片

  然后在表中填入测试用的数据


  新建好数据库之后在hibernate.cfg.xml中修改相应的数据库URL


    jdbc:mysql://127.0.0.1:3306/Hibernate_Project

编写代码

搭建好数据库之后就可以回到项目中开始写相应的代码
  首先先写一个对应数据库数据结构的JavaBean文件,并添加getter和setter

Student.java

package com.pojo;

public class Student {

    private int stuid;
    private String stuname;

    public int getStuid() {
        return stuid;
    }

    public void setStuid(int stuid) {
        this.stuid = stuid;
    }

    public String getStuname() {
        return stuname;
    }

    public void setStuname(String stuname) {
        this.stuname = stuname;
    }

}

然后再pojo包下建立一个JavaBean文件的Hibernate映射文件

Student.hbm.xml






    
    
    
        
        
            
            
        
        
        
    

注:

事实上关于配置文件还是有很多别的写法,以上的写法是比较标准和全面的写法,但是Hibernate提供了一些约定俗成的简略写法,在一定程度上可以使写配置文件更有效率







    
    
        
        
            
            
        
        
        
    

测试基本操作

至此,项目中的基本配置已经配置好了,接下来可以开始写Test测试方法了。

Hibernate(3.0)_Hibernate单表的增删改查_第3张图片

Test.java

package com.pojo;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class Test {

    public static void main(String[] args) {
        // 1.读取总配置文件
        Configuration configuration = new Configuration().configure();
        // 2.创建Session工厂
        SessionFactory factory = configuration.buildSessionFactory();
        // 3.得到Session session其实就是对connection对象的封装
        Session session = factory.openSession();
        // 4.开启事务 ACID 原子性 一致性 隔离性 持久性
        Transaction transaction = session.beginTransaction();
        // 5.持久化操作
        Student student = new Student();
        student.setStuid(3);
        student.setStuname("damao");
        session.save(student);
        // 6.提交事务
        transaction.commit();
        // 7.关闭session
        session.close();
    }

}

其中的持久化操作就是对数据库的实际操作,可以替换成项目需要的操作

//新建一个Student类
Student student = new Student();
//指定其中的各个属性的值
student.setStuid(3);
student.setStuname("xiaohei");
//用save方法保存在内存中,然后用transaction.commit()提交事务,数据库便把数据存下来了
session.save(student);
Hibernate(3.0)_Hibernate单表的增删改查_第4张图片

  可以看到在控制台已经把sql语句打印出来了,表示已经执行成功了,然后再看数据库中是否把新的数据增加到表里


  可以看到数据已经被添加到表中了

中文乱码

然而很多时候我们需要往数据库里面添加中文,比如用户名之类的属性,这个时候我们直接插入中文数据的时候,我们把上面的姓名一项改成中文

student.setStuname("小黑");

再次执行就会发现数据库中出现了不能显示的乱码


  这是因为Hibernate和MySQL默认的操作字符集不是我们常用的UTF-8所以就会出现乱码,这个时候我们需要去修改Hibernte的全局配置文件中的数据库URL,在原来的URL尾巴上加上字符指定代码


        jdbc:mysql://127.0.0.1:3306/Hibernate_Project?useUnicode=true&characterEncoding=UTF-8
    

这样再添加中文就不会出现乱码了

只需要基于增加的方法改为

Student student = (Student) session.load(Student.class, 1);
session.delete(student);

  我们可以看到数据库中stuid为1的记录已经被删掉了

同上简单修改代码为

Student student = (Student) session.load(Student.class, 2);
student.setStuname("赵六");
session.update(student);

  可以看到数据库中stuid的stuname属性已经被修改

同上简单修改代码为

Student student = (Student) session.load(Student.class, 2);
System.out.println(student.getStuid());
System.out.println(student.getStuname());

可以看到控制台打印出了stuid为2的记录的信息(这个顺序有点凌乱我也不知道为毛,不过总算是打印出来了)


以上便是简单的单表单记录的增删改查,复杂的以后慢慢再补充

你可能感兴趣的:(Hibernate(3.0)_Hibernate单表的增删改查)