初識(shí)Hibernate框架,進(jìn)行簡(jiǎn)單的增刪改查操作
Hibernate的優(yōu)勢(shì)
優(yōu)秀的Java 持久化層解決方案 (DAO)
主流的對(duì)象—關(guān)系映射工具產(chǎn)品
簡(jiǎn)化了JDBC 繁瑣的編碼
將數(shù)據(jù)庫(kù)的連接信息都存放在配置文件
自己的ORM框架
一定要手動(dòng)實(shí)現(xiàn)Hibernate(模擬Hibernate實(shí)現(xiàn))

2:創(chuàng)建一個(gè)大配置文件
<?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 數(shù)據(jù)庫(kù)連接設(shè)置--> <!-- 驅(qū)動(dòng)類 --> <property name="connection.driver_class">oracle.jdbc.OracleDriver</property><!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng)語(yǔ)言 --> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><!-- 數(shù)據(jù)庫(kù)連接字符串 --> <property name="connection.username">cgg</property><!-- 用戶名 --> <property name="connection.password">1</property><!-- 密碼 --> <!-- SQL dialect (sql的方言)--> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property><!-- 通過oracle數(shù)據(jù)庫(kù)的版本規(guī)定sql方言 --> <!-- Echo all executed SQL to stdout 在控制臺(tái)打印后臺(tái)的sql語(yǔ)句--> <property name="show_sql">true</property><!-- 可省,展示生成的sql語(yǔ)句 --> <!-- 格式化顯示sql --> <property name="format_sql">true</property><!-- 可省,將展示出的sql語(yǔ)句格式化--> <!-- Drop and re-create the database schema on startup 序列化--> <property name="hbm2ddl.auto">update</property><!-- 數(shù)據(jù)庫(kù)的建表語(yǔ)句首選create,之后選擇update -->
<!--線程綁定-->
<property name="hibernate.current_session_context_class">thread</property>
<mapping resource="cn/happy/entity/Student.hbm.xml" /><!-- 關(guān)聯(lián)小配置文件 -->
</session-factory>
</hibernate-configuration>
創(chuàng)建一個(gè)小配置文件
<?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"><!-- 關(guān)聯(lián)哪個(gè)包下的類 --> <class name="Student" table="STUDENT"><!-- 符合一類對(duì)應(yīng)一表 --> <id name="sid" column="SID"><!-- 生成主鍵(唯一標(biāo)識(shí)) --> <!-- 主鍵生成策略:native: native:如果后臺(tái)是Oracle 后臺(tái)是MySQL,自動(dòng)應(yīng)用自增 --> <generator class="increment" /> </id> <property name="sname" type="string" column="NAME" /> <property name="sage" type="int" column="AGE"/> </class> </hibernate-mapping>
測(cè)試數(shù)據(jù)
public class myTest { Configuration cfg; Session session; Transaction tran; @Before public void myBefore(){ //讀取并解析配置文件 cfg=new Configuration().configure("hibernate.cfg.xml"); //讀取并解析映射信息,創(chuàng)建SessionFactory對(duì)象 SessionFactory factory = cfg.buildSessionFactory(); //打開session //使用的getCurrentSession()方法,會(huì)自動(dòng)關(guān)閉session session = factory.getCurrentSession(); //開始一個(gè)事務(wù)(增刪改操作必須,查詢操作可選) tran=session.beginTransaction(); } @After public void myAfter(){ //結(jié)束事務(wù) 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端操作數(shù)據(jù)了
posted on 2017-01-10 14:28 川哥哥 閱讀(150) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)