zoukankan      html  css  js  c++  java
  • Hibernate入门案例配置以及增、删、改、查看

            享受痛苦就是走向成功的第一步。

    一、创建一个项目(lib里面是需要的夹包小奶瓶要导包)

        

    二、书写大配置文件

     大配置文件必须放置在项目根目录(专业classpath下):界定:就是src

    1名称: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>
    
            <!-- Database connection settings 数据库连接设置-->
            <!-- 驱动类 -->
            <property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
            <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
            <property name="connection.username">sa</property>
            <property name="connection.password">1</property>
    
            <!-- SQL dialect (sql的方言)-->
            <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
    
            
            <!-- Echo all executed SQL to stdout 在控制台打印后台的sql语句-->
            <property name="show_sql">true</property>
            <!-- 格式化显示sql -->
            <property name="format_sql">true</property>
            <!-- Drop and re-create the database schema on startup 序列化-->
            <property name="hbm2ddl.auto">update</property>
    
            <mapping resource="hibernate.hbm.xml" />
    
        </session-factory>
    
    </hibernate-configuration>

    三、创建小配置

    1、名称:hibernate.hbm.xml

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
            "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    
    <hibernate-mapping package="cn.happy.entity">
        <class name="Student" table="STUDENT">
            <id name="sid" column="SID">
                <!-- 主键生成策略:native: native:如果后台是Oracle 后台是MySQL,自动应用自增 -->
                <generator class="native" />
            </id>
            <property name="name" type="string" column="NAME" />
            <property name="age" />
        </class>
    
    </hibernate-mapping>

     四、测试类

    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    
    import cn.happy.entity.Student;
    
    public class Test {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
             //addAll();//添加信息
            //getAll();//查看信息
            //deleteAll();//删除信息
            UpdateAll();//修改信息
        }
            //添加信息
            public static void addAll(){
                Student stu = new Student();
                //stu.setSid(2);
                stu.setName("聆听");
                stu.setAge(20);
                // 1.1读取大配置文件,获取要连接的数据库信息
                Configuration cfg = new Configuration().configure();
                // 1.2创建SessionFactory
                SessionFactory factory = cfg.buildSessionFactory();
    
                // 1.3加工session
                Session session = factory.openSession();
    
                Transaction tx = session.beginTransaction();
    
                // 02.Hibernate 帮我保存
    
                session.save(stu);
    
                tx.commit();
                System.out.println("save ok!");
    
            }
            //查看全部信息
            public static void getAll(){
                //读取配置文件
                Configuration conf=new Configuration().configure();
                //创建SessionFactory
                SessionFactory sf=conf.buildSessionFactory();
                //打开session
                Session se=sf.openSession();
                //加载数据
                Student dept=(Student)se.get(Student.class, new Integer( 21));
                System.out.println(dept.getName());//输入数据
                System.err.println(dept.getAge());
                //关闭会话
                if(se!=null){
                    se.close();
                }
                
            }
            //删除信息
            public static void deleteAll(){
                //读取数据文件
                Configuration conf=new Configuration().configure();
                //创建SessionFactory
                SessionFactory se=conf.buildSessionFactory();
                //打开session
                Session session=se.openSession();
                //开始一个事务
                Transaction tx=session.beginTransaction();
                //获取部门的对象
                Student stu=(Student)session.get(Student.class, new Integer(22));
                //删除对象(持久化操作)
                session.delete(stu);
                //提交事务
                tx.commit();    
                System.out.println("删除成功");
                //回滚事务
                tx.rollback();
                System.out.println("删除回滚");
                //关闭session
                if(session!=null){
                    session.close();
                }
            }
            public static void UpdateAll(){
                //读取数据文件
                Configuration conf=new Configuration().configure();
                //创建SessionFactory
                SessionFactory se=conf.buildSessionFactory();
                //打开session
                Session session=se.openSession();
                //开始一个事务
                Transaction tx=session.beginTransaction();
                //获取部门的对象
                Student stu=(Student)session.get(Student.class, new Integer(2));
                //修改信息
                stu.setName("女王");
                //提交事务
                tx.commit();
                /*http://blog.csdn.net/woxueliuyun/article/details/3930335*/        
                System.out.println("修改成功");
                //回滚事务
                tx.rollback();
                System.out.println("修改回滚");
                //关闭session
                if(session!=null){
                    session.close();
                }
            }
    }
  • 相关阅读:
    Codeforces 1485C Floor and Mod (枚举)
    CodeForces 1195D Submarine in the Rybinsk Sea (算贡献)
    CodeForces 1195C Basketball Exercise (线性DP)
    2021年初寒假训练第24场 B. 庆功会(搜索)
    任务分配(dp)
    开发工具的异常现象
    Telink MESH SDK 如何使用PWM
    Telink BLE MESH PWM波的小结
    [LeetCode] 1586. Binary Search Tree Iterator II
    [LeetCode] 1288. Remove Covered Intervals
  • 原文地址:https://www.cnblogs.com/yejiaojiao/p/5742445.html
Copyright © 2011-2022 走看看