hibernate加載配置文件2種方式 java
這種方式看源碼其實就是讀取固定路徑固定名字的配置文件,也就是src下的hibernate.cfg.xml 數據庫
Configuration configuration = new Configuration(); configuration.configure();
第2中就是能夠傳參數,看源碼其實就是讀取傳入路徑的文件。 session
public Configuration configure(String resource) throws HibernateException{ log.info("configuring from resource :" + resource); InputStream stream = getConfigurationInputStream(resource); return doCongigure(stram,resource); }
hibernate的增刪改查
ui
上次完成了第一個簡單添加的例子,下面刪除,修改,查詢操做。 spa
public class Demo(){ static{ Configuration configuration = new Configuration(); configuration.configure(); sessionFactory = configuration.buildSessionFactory(); } //查找全部Person表中對象 public void demoQuery(){ Session session = sessionFactory.openSession(); List<Person> personList = session.createQuery("from Persn").list(); for(Person person:personList){ System.out.println(person.getPname()); } session.close(); } //根據ID查找一個Person public void demoQueryPersonByID(){ Session session = sessionFactory.openSession(); /** * 按照主鍵的方式查詢數據庫表中的記錄 * 第二個參數的類型必須和持久化中標示符的類型保持一致 */ Person person = (Person)session.get(Person.class, 1L); System.out.println(person.getPname()); session.close(); } //2種刪除方式 public void demoDeletePerson(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); /** * 一、根據id把值從數據庫中查找出來 * 二、把對象刪除掉 */ Person person = (Person)session.get(Person.class, 1L); session.delete(person); /** * 一、新建立一個person對象 * 二、給person對象的標示符賦值 * 三、調用session.delete方法刪除 */ Person person = new Person(); person.setPid(2L); session.delete(person); transaction.commit(); session.close(); } public void testUpdatePerson(){ Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); /** * 一、根據id把持久化對象提取出來 * 二、進行修改 * 三、執行upate操做 */ Person person = (Person)session.get(Person.class, 1L); person.setPsex("man"); Person person = new Person(); person.setPid(1L); session.update(person); transaction.commit(); session.close(); } }