優秀的Java 持久化層解決方案 (DAO)sql
主流的對象—關係映射工具產品數據庫
簡化了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端操做數據了編碼