初識Hibernate框架,進行簡單的增刪改查操做

Hibernate的優點

優秀的Java 持久化層解決方案  (DAOsql

主流的對象—關係映射工具產品數據庫

 簡化了JDBC 繁瑣的編碼session

 將數據庫的鏈接信息都存放在配置文件oracle

 本身的ORM框架app

 必定要手動實現Hibernate(模擬Hibernate實現)框架

 

2:建立一個大配置文件工具

<?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">cgg</property><!-- 用戶名 -->
        <property name="connection.password">1</property><!-- 密碼 -->
        <!-- SQL dialect (sql的方言)-->
        <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property><!-- 經過oracle數據庫的版本規定sql方言 -->
        <!-- Echo all executed SQL to stdout 在控制檯打印後臺的sql語句-->
        <property name="show_sql">true</property><!-- 可省,展現生成的sql語句 -->
        <!-- 格式化顯示sql -->
        <property name="format_sql">true</property><!-- 可省,將展現出的sql語句格式化-->
        <!-- Drop and re-create the database schema on startup 序列化-->
        <property name="hbm2ddl.auto">update</property><!-- 數據庫的建表語句首選create,以後選擇update -->
     <!--線程綁定-->
     <property name="hibernate.current_session_context_class">thread</property>
    <mapping resource="cn/happy/entity/Student.hbm.xml" /><!-- 關聯小配置文件 --> 
  </session-factory>

</hibernate-configuration>

建立一個小配置文件測試

<?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="cn.happy.entity"><!-- 關聯哪一個包下的類 -->
    <class name="Student" table="STUDENT"><!-- 符合一類對應一表 -->
        <id name="sid" column="SID"><!-- 生成主鍵(惟一標識) -->
            <!-- 主鍵生成策略:native: native:若是後臺是Oracle 後臺是MySQL,自動應用自增 -->
            <generator class="increment" />
        </id>
        <property name="sname" type="string" column="NAME" />
        <property name="sage"  type="int" column="AGE"/>
    </class>
</hibernate-mapping>

測試數據ui

public class myTest {
    Configuration cfg;
    Session session;
    Transaction tran;
    @Before
    public void myBefore(){
        //讀取並解析配置文件
        cfg=new Configuration().configure("hibernate.cfg.xml");
        //讀取並解析映射信息,建立SessionFactory對象
        SessionFactory factory = cfg.buildSessionFactory();
        //打開session
        //使用的getCurrentSession()方法,會自動關閉session
        session = factory.getCurrentSession();
        //開始一個事務(增刪改操做必須,查詢操做可選)
        tran=session.beginTransaction();
    }
    @After
    public void myAfter(){
        //結束事務
        tran.commit();;
    }
    //添加
    @Test
    public void addTest(){
        Student stu=new Student();
        stu.setSage(18);
        stu.setSname("安哲安哲");
        session.save(stu);
    }
    @Test
    public void findTest(){
        Student stu = session.load(Student.class, 11);
        System.out.print(stu.getSname());
    }
    @Test
    public void upTest(){
        Student stu = session.load(Student.class, 11);
        stu.setSname("安哲大傻逼");
    }
    @Test
    public void delTest(){
        Student stu = session.load(Student.class, 12);
        session.delete(stu);
    }

經過以上代碼,咱們就能輕鬆的使用框架向db端操做數據了編碼

相關文章
相關標籤/搜索