今天就讲一下hibernate简单的增删改查
先配置hibernate的环境
注:在写之前需要有jboss的插件
1.在pom.xml中先引入hibernate的依赖和mysql的依赖
<!--hibernate的核心依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.10.Final</version>
</dependency>
<!-- 引入MySQL的核心依赖 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
这是我的项目结构
2.在实体类中新建你要操作的数据库表所对应的实体类,然后生成所对应的映射文件
生成映射文件步骤:1.右键实体类所在的包名,点击new,然后再点击下面的other
搜索hib
点击第四个hbm.xml,一直next,然后finish,生成后是这样的
注:实体类中有的字段,在映射文件中都要与之对应
3.生成hibernate的核心配置文件
在resources文件夹右键----new–找到other–搜索hibernate–cfg.xml
一直到这个页面
完成后是这样的 就finish完成
生成后是这样
环境配置完后,就开始写test中的增删改查,我写的是测试的,所以把pom.xml配置文件中改了
测试类中代码
package com.ywy.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.ywy.entity.Student;
public class TestHib {
private Configuration configuration;
private SessionFactory factory;
private Session session;
private Transaction transaction;
//在测试之前执行的方法
@Before
public void test() {
//获取hibernate的配置文件信息
configuration=new Configuration().configure();
//通过配置文件获取到session工厂
factory=configuration.buildSessionFactory();
//通过工厂打开session对象
session=factory.openSession();
//如果有新增,就需要提交事务
transaction=session.beginTransaction();
}
@Test
public void addAll() {
//添加
Student student=new Student("哈哈哈哈", "男", 20, new Date());
//添加
session.save(student);
}
@Test
public void deteleAll() {
//删除
//先查询出你要删除的对象,然后再把对象删除 5对应你的id
Student student=session.get(Student.class, 5);
session.delete(student);
}
@Test
public void findAll() {
//查询全部
List<Student> list=session.createQuery("from Student").list();
for (Student student : list) {
System.out.println(student.getName());
}
}
@Test
public void findId() {
//查询单个
Student student=session.get(Student.class, 1);
System.out.println(student);
}
@Test
public void updateAll() {
//修改
Student student=session.get(Student.class, 1);
student.setName("嘻嘻嘻2222");
//可以加可以不加,他会有一个持久态,会和数据库中的数据同步更新,与数据库不一致时就同步更新
// session.update(student);
}
@After
public void after() {
transaction.commit();//提交事务
session.close();//关闭session
}
}