hibernate主要配置文件整合
結構圖:
實體類映射文件,名稱格式:XX.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="org.hibernate.test.exception" >
<!-- name填寫實體類的路徑 table填寫表名 -->
<class name="com.wqk.entity.User" table="user">
<!-- id填寫實體類主鍵字段 table填寫表主鍵字段 -->
<id name="id" column="id">
<!-- native代表自增長依賴於表 -->
<generator class="native"></generator>
</id>
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<!-- 映射文件結束 -->
</class>
</hibernate-mapping>
hibernate核心配置文件:名稱: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>
<!-- jdbc操作數據庫配置文件 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/test01</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<!-- 數據庫連接池初始化時創建的connection個數 -->
<property name="connection.pool_size">2</property>
<!-- 數據庫類型,官方稱之爲sql方言,這裏使用mysql,不要自己寫從官網api文檔上cp -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 執行sql的時候是否打印sql語句,這裏使用true,代表打印 -->
<property name="show_sql">true</property>
<!-- 這個配置是說:當數據庫不存在時是否創建:DDL,這裏我不允許它自己創建,so,修改爲update -->
<property name="hbm2ddl.auto">update</property>
<!-- 這裏是指向實體類的映射文件,注意:是實體類的映射文件,不是實體類 -->
<!-- 剛剛找了一下。發現是屬性寫錯了,拷貝的時候也要注意 -->
<mapping resource="com/wqk/entity/User.hbm.xml"/>
<!-- hibernate核心配置文件完成 -->
</session-factory>
</hibernate-configuration>
基本操作:增刪改查
package com.wqk.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.wqk.entity.User;
public class Test01 {
//註解@Test相當於main方法
@Test
public void show()
{
Configuration con = new Configuration();
//加載核心配置文件
con.configure();
//獲取session工廠
SessionFactory sf=con.buildSessionFactory();
//打開session
Session session = sf.openSession();
//測試查詢get(實體類.class, id)
User user=(User) session.get(User.class, 1);
System.out.println(user.getUsername());
session.close();
}
//測試增刪改
@Test
public void insert()
{
Configuration con = new Configuration();
con.configure();
SessionFactory sf = con.buildSessionFactory();
Session session = sf.openSession();
//做增刪改時要求使用事物
//獲取事物
Transaction tc = session.beginTransaction();
//開啓事物
tc.begin();
User user=new User();
user.setUsername("張迷");
user.setPassword("123456");
session.save( user );
//提交
tc.commit();
//關閉
sf.close();
//新增成功
}
//測試增刪改
@Test
public void delete()
{
Configuration con = new Configuration();
con.configure();
SessionFactory sf = con.buildSessionFactory();
Session session = sf.openSession();
//做增刪改時要求使用事物
//獲取事物
Transaction tc = session.beginTransaction();
//開啓事物
tc.begin();
//先查詢
User user=(User) session.get(User.class, 1);
session.delete(user);
//提交
tc.commit();
//關閉
sf.close();
//刪除成功
}
//測試增刪改
@Test
public void update()
{
Configuration con = new Configuration();
con.configure();
SessionFactory sf = con.buildSessionFactory();
Session session = sf.openSession();
//做增刪改時要求使用事物
//獲取事物
Transaction tc = session.beginTransaction();
//開啓事物
tc.begin();
//依然先查詢
User user=(User) session.get(User.class, 2);
user.setUsername("我愛你");
session.update(user);
//提交
tc.commit();
//關閉
sf.close();
//修改成功
}
//hibernate基礎到此結束
}