• Hibernate demo之使用xml


    1.新建maven项目 testHibernate,pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>testHiberate</groupId>
        <artifactId>testHiberate</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
    
            <!-- 添加Hibernate依赖 -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>3.6.10.Final</version>
            </dependency>
    
            <!-- 添加Log4J依赖 -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.16</version>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-nop</artifactId>
                <version>1.6.4</version>
            </dependency>
    
            <!-- 添加javassist -->
            <dependency>
                <groupId>javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>3.12.0.GA</version>
            </dependency>
    
            <!-- mysql数据库的驱动包 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.6</version>
            </dependency>
        </dependencies>
    
    </project>
    View Code

    2.新建类Event

    package com.demo;
    
    import java.util.Date;
    
    public class Event {
    
        private Long id;//id
        private String title;//标题
        private Date date;//日期
        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getTitle() {
            return title;
        }
        public void setTitle(String title) {
            this.title = title;
        }
        public Date getDate() {
            return date;
        }
        public void setDate(Date date) {
            this.date = date;
        }
    }
    View Code

    3.在resource/mapper文件夹下新建Event.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="com.demo">
    
    
    
        <class name="com.demo.Event" table="EVENTS">
    
            <id name="id" column="EVENT_ID">
    
                <generator class="assigned"/>
    
            </id>
    
            <property name="date" type="timestamp" column="EVENT_DATE"/>
    
            <property name="title"/>
    
        </class>
    
    
    
    </hibernate-mapping
    
    >
    View Code

    4.在resource文件夹下新建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">org.gjt.mm.mysql.Driver</property>
            <property name="connection.url">jdbc:mysql://192.168.32.95:3306/db2</property>
            <property name="connection.username">DB_WX_APP</property>
            <property name="connection.password">LH_longfor</property>
            <!-- JDBC connection pool (use the built-in) -->
            <property name="connection.pool_size">1</property>
            <!-- SQL dialect -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
            <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>
            <!-- Disable the second-level cache  -->
            <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
    
            <!-- Echo all executed SQL to stdout -->
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
            <!-- Drop and re-create the database schema on startup -->
            <property name="hbm2ddl.auto">update</property>
            <mapping resource="mapper/Event.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
    View Code

    5.新建辅助类 HibernateUtil

    package com.demo;
    
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtil {
    
        //定义静态的SessionFactory,产生单例,只生成一个SessionFactory
        private static final SessionFactory sessionFactory = buildSessionFactory();
    
        //用来初始化SessionFactory
        private static SessionFactory buildSessionFactory() {
    
            try {
    
                // Create the SessionFactory from hibernate.cfg.xml
    
                return new Configuration().configure().buildSessionFactory();
    
            }
    
            catch (Throwable ex) {
    
                // Make sure you log the exception, as it might be swallowed
    
                System.err.println("Initial SessionFactory creation failed." + ex);
    
                throw new ExceptionInInitializerError(ex);
    
            }
    
        }
        //得到SessionFactory
        public static SessionFactory getSessionFactory() {
    
            return sessionFactory;//返回SessionFactory的对象
    
        }
    
    }
    View Code

    6.新建Test类

    package com.demo;
    
    import java.util.Date;
    import java.util.List;
    
    import org.hibernate.Session;
    public class Test {
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test mgr = new Test();
            //if (args[0].equals("store")) {
            //mgr.createAndStoreEvent("My Event1", new Date());//调用函数插入数据
            //}
    mgr.getList();
           // mgr.Get();//单个查询
            HibernateUtil.getSessionFactory().close();
        }
        private void createAndStoreEvent(String title, Date theDate) {
    
            //得到目前运行的session
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    
            session.beginTransaction();//开始事务
            Event theEvent = new Event();//创建bean对象
            theEvent.setTitle(title);//设置标题
            theEvent.setId(100002L);
            theEvent.setDate(theDate);//设置日期
            session.save(theEvent);//保存对象
            session.getTransaction().commit();//提交事务
    
        }
    
    
        private void Get() {
    
            //得到目前运行的session
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
            Event theEvent = new Event();//创建bean对象
            theEvent.setId(100001L);
            Event e=(Event) session.get(Event.class,100001L);
            System.out.println(e.getTitle());
    session.getTransaction().commit();
    
    
        }
    
        void getList(){
            Session session=HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();
           List<Event> list= session.createSQLQuery("select * from EVENTS").addEntity(Event.class).list();
      for(Event e:list){
    
          System.out.println(e.getTitle());
      }
      session.getTransaction().commit();
        }
    
    }
    View Code

    运行Test类即可

    https://pan.baidu.com/s/1fhnr4SWTkqd0RAdGniAMtA

  • 相关阅读:
    【进阶技术】一篇文章搞掂:Spring Cloud Stream
    es6的foreach循环遍历
    centos下安装redis
    linux下安装nginx
    centos下安装Mysql5.7.20
    ubuntu下安装Mysql
    Maven发布项目丢失Mybatis Mapper包的映射问题
    linux下导入导出oracle的dmp文件
    表达式计算-----------eval()运算符
    Linux下安装mysql
  • 原文地址:https://www.cnblogs.com/tiancai/p/8308603.html
Copyright © 2020-2023  润新知