版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luckily_star/article/details/80280312
以Hibernate3.6的版本为例
一、文件 ---> 项目结构--->模块 --->添加模块(点绿色的+)--->java模块 --->下一步
二、项目下要创建 config目录(标记为源根 配置文件) 和 lib目录(jar包)
(图中圈的是必要的 其余看需求使用 )
以上jar包在hibernate官方文档的lib目录下(步骤如下 红框圈出的)
三、打开项目结构点开依赖 点绿色“+ ” 找到你项目的位置 将下面的lib目录选中点击“确定 ”“应用”
四、在config目录下创建 hibernate.cfg.xml中配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>//数据库连接
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/salary</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.jdbc.batch_size">20</property> //批处理操作
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<mapping resource="com/oracle/bean/T_salary.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
五、在你的实体类下面 建一个与你数据库同名的XML文件
例
:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.oracle.bean">
//映射(当name 与 column 相同时 column 可省略)
<class name="Salary" table="t_salary">
<id name="workcode" column="workcode"></id>
<property name="uname" column="uname"></property>
<property name="dept" column="dept"></property>
<property name="base_salary" column="base_salary"></property>
<property name="extract" column="extract"></property>
<property name="leav" column="leav"></property>
<property name="sick" column="sick"></property>
<property name="social" column="social"></property>
</class>
</hibernate-mapping>
六、实现增删查改 批量操作 分页
1、实现新增
package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
public class SalaryCreate {
public static void main(String[] args) {
//加载核心配置文件
Configuration cfg=new Configuration();
//解释配置文件
cfg.configure();
//获取连接工厂 sessionFactory
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从工厂中获取session
Session session = sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作
Salary salary=new Salary();
salary.setWorkcode(22l);
salary.setUname("哈哈");
salary.setDept("编辑部");
salary.setBase_salary(5000d);
salary.setExtract(300d);
salary.setLeav(0d);
salary.setSick(100d);
salary.setSocial(200d);
session.save(salary);
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭sessionFactor
sessionFactory.close();
}
}
2、实现修改
package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
public class SalaryUpdate {
public static void main(String[] args) {
//解析配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建session工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从session工厂中获取session
Session session = sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作
Salary salary= (Salary) session.get(Salary.class,22l);
salary.setBase_salary(10000d);
salary.setExtract(5000d);
salary.setDept("业务部");
session.update(salary);
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭session工厂
sessionFactory.close();
}
}
3、实现删除
package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
public class SalaryRemove {
public static void main(String[] args) {
//解析配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建session工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从session 工厂中获取session
Session session = sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作
//1.先查询 再删除
Salary salary1= (Salary) session.get(Salary.class,22l);
session.delete(salary1);
//2.定义一个有主键的对象 去删除
Salary salary2=new Salary();
salary2.setWorkcode(21l);
session.delete(salary2);
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭session工厂
}
}
4、实现查询
package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import java.util.List;
public class SalaryQuery {
public static void main(String[] args) {
//解析配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建session工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从session工厂中获取session
Session session = sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作
//1、查询单个
Query query=session.createQuery("select s.uname from Salary s");
List<Object> list=query.list();
for (Object s:list){
System.out.println(s);
}
//2、查询多列
query=session.createQuery("select s.uname,s.dept,s.leav from Salary s");
List<Object[]> list2=query.list();
for (Object[] s:list2){
for (Object ss:s) {
System.out.println(ss);
}
}
//3、查询所有
query=session.createQuery("select s from Salary s");
List<Salary> list3=query.list();
for (Salary s:list3){
System.out.println(s);
}
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭session工厂
sessionFactory.close();
}
}
5、实现分页
package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import java.util.List;
public class SalaryPage {
public static void main(String[] args) {
//解析配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建session工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从session工厂获取session
Session session = sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作
Query query=session.createQuery("from Salary");
query.setFirstResult(0);//可变
query.setMaxResults(10);
List<Salary> list = query.list();
for (Salary salary:list){
System.out.println(salary);
}
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭session工厂
sessionFactory.close();
}
}
6、实现批量操作(往数据库里添加数据)
package com.oracle.core;
import com.oracle.bean.Salary;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class SalaryBatch {
public static void main(String[] args) {
//解析配置文件
Configuration cfg=new Configuration();
cfg.configure();
//创建session工厂
SessionFactory sessionFactory = cfg.buildSessionFactory();
//从session工厂中获取session
Session session = sessionFactory.openSession();
//开启事务
session.beginTransaction();
//持久化操作
for (int i=20;i<150;i++){
Salary salary=new Salary();
salary.setWorkcode((long)i);
salary.setUname("乔治"+i);
salary.setDept("软件开发"+i);
salary.setBase_salary(7000d);
salary.setExtract(5000d);
salary.setLeav(0d);
salary.setSick(100d);
salary.setSocial(500d);
session.save(salary);
if (1%20==0){
session.flush();
session.clear();
}
}
//提交事务
session.getTransaction().commit();
//关闭session
session.close();
//关闭session工厂
session.close();
}
}