IDEA 手动创建 Hibernate 操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
    }
}


猜你喜欢

转载自blog.csdn.net/luckily_star/article/details/80280312