• HIBERNATE 入门小案例


    刚刚开始肯定好多人都会问什么是hibernate呢?

    那么下面我们就来了解一下什么事hibernate吧!

    首先,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

          我们接触了Intelij IDEA,据了解hibernate这是一款特别强大的软件,下面带你们大概的了解一下idea看一下大概的操作,然后有兴趣的同学可以去学习一下。

        首先我要说一点,在IntelliJ IDEA里面“new Project”就相当于我们eclipse的“workspace”,而“new Module”才是创建一个工 程,这是要注意的一点。

    Intelij IDEA 中的架构图:

    创建一个工程分为以下几步:

    (1)New Project

    (1.1)第一步

            

    (1.2)第二步

    (1.3)第三步

    这样一个项目就有了,接下来我们要添加我们需要的资源

    (2)创建lib文件夹

    以上就是现阶段我们所需要的jar包

    (3)创建resource文件夹,其中包含hibernate 的大配置信息,在这要注意命名问题:hibernate.ccfg.xml后面绝对不能少了ccfg.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>
    
            < !--数据库连接设置-->
         < !--数据库JDBC驱动设置-->
    
            <property name="connection.driver_class"
    >oracle.jdbc.driver.OracleDriver</property>
      
        < !--数据库url-->
    
            <property name="connection.url"
    >jdbc:oracle:thin:@localhost:1521:orcl</property>
        < !--数据库用户名-->
    
            <property name="connection.username"
    >lex</property>
        < !--数据库用户密码-->
    
            <property name="connection.password"
    >lex</property>
    
            < !--JDBC连接池(使用内置的)-->
            <property name="connection.pool_size"
    >1</property>
    
           < !--SQL方言-->
            <property name="dialect"
    >org.hibernate.dialect.Oracle10gDialect</property>
    
            < !--使Hibernate自动会话上下文管理-->
            <property name="current_session_context_class"
    >thread</property>
    
           <!--关闭二级缓存-->
            <property name="cache.provider_class"
    >org.hibernate.cache.NoCacheProvider</property>
    
            <!-- 是否将运行期间生成的sql输出到日志以供调试-->
            <property name="show_sql"
    >true</property>
    
           < !--在启动时,删除和重新创建数据表结构-->
            <property name="hbm2ddl.auto"
    >update</property>
    <!-- 关联小配置-->
    <mapping-resource>     cn/lex/entity/Student.hbm.xml</mapping-resource> </hibernate-configuration >
     

    (4)配置小配置,存在于实体层,命名:Student.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.lex.entity">
    
        <class name="Student" table="Student">
            <id name="id" column="id">
                <generator class="native"/>
            </id>
            <property name="name"></property>
        </class>
    
    </hibernate-mapping
    >
     

    (5)书写测试

     
    package cn.lex.test;
    
    import cn.lex.entity.Student;
    import org.hibernate.Query;
    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 java.util.List;
    
    /**
     * Created by accp on 2017/1/9.
     */
    public class FirstTest {
        Configuration cfg;  //配置对象
        Session session;   //会话对象
        Transaction tx;    //事务对象
        @Before
        public void mybefore(){
            cfg=new Configuration().configure();  //获取配置对象
            SessionFactory factory = cfg.buildSessionFactory(); //获取sessionfactory对象
             session= factory.openSession();  //获取session对象
             tx= session.beginTransaction();  //开启事务
        }
    
        //添加学生
        @Test
        public void add(){
            Student stu=new Student();
            stu.setName("大大大大胖子");
            session.save(stu);  //提交到数据库
            System.out.println("save ok!");
        }
    
        //根据条件查询学生姓名
        @Test
        public void select(){
            String hql="from Student where id=?";
            Query query = session.createQuery(hql);
            query.setParameter(0,26);
            Student stu =(Student) query.uniqueResult();
            System.out.println(stu.getName());
        }

    //修改学生姓名
     @Test
    public void update(){
    Student stu=session.load(Student.class,serializable:1);
    stu.setName("小小小小胖子");
    System.out.println("update ok!");

    }

    //删除学生
     @Test
    public void delete(){
     Student stu=session.load(Student.class,serializable:1);
    session.delete(stu);
    System.out.println("delete ok!");

    }

    //查询学生
     @Test
    public void select(){
     Student stu=session.load(Student.class,serializable:1);
    System.out.println("姓名:"+stu.getName());
    } @After public void after(){ tx.commit(); //提交事务 session.close(); //关闭session } }
     

    如果这些你都完成了,那么恭喜你!你可以点运行了,让我们来见正这激动人心的时刻把。。。。

  • 相关阅读:
    64位操作系统下IIS报“试图加载格式不正确的程序”错误(转)
    Web编程前端之7:web.config详解
    基于.net的加密汇总(1)
    基于.net的加密汇总(2)
    Web编程前端之6:js刷新页面大全
    SQL Server之3:全文搜索(3)
    Web编程前端之4:css+div多样式可定制完美分页全攻略
    SQL Server之1:全文搜索(1)
    处理程序“PageHandlerFactoryIntegrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”(转)
    SQL Server之8:sql查询每个学生得分最高的两门课
  • 原文地址:https://www.cnblogs.com/cuntouyixiaohuo/p/6266100.html
Copyright © 2020-2023  润新知