hibernate加载配置文件2种方式
这种方式看源码其实就是读取固定路径固定名字的配置文件,也就是src下的hibernate.cfg.xml
Configuration configuration = new Configuration();
configuration.configure();
第2中就是可以传参数,看源码其实就是读取传入路径的文件。
public Configuration configure(String resource) throws HibernateException{
log.info("configuring from resource :" + resource);
InputStream stream = getConfigurationInputStream(resource);
return doCongigure(stram,resource);
}
hibernate的增删改查
上次完成了第一个简单添加的例子,下面删除,修改,查询操作。
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();
/**
* 1、根据id把值从数据库中查找出来
* 2、把对象删除掉
*/
Person person = (Person)session.get(Person.class, 1L);
session.delete(person);
/**
* 1、新创建一个person对象
* 2、给person对象的标示符赋值
* 3、调用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();
/**
* 1、根据id把持久化对象提取出来
* 2、进行修改
* 3、执行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();
}
}