在Idea开发环境中使用Hibernate的炸包来开发要注意以下几个坑:
1.配置文件的位置
在使用Session对数据库进行操作的时候,我们要先使用configuration类配置hibernate.cfg.xml类,然后生成sessionFactory用于获取session对象(spring中配置为单例静态对象)。以下是configuration的configure方法:
public Configuration configure() throws HibernateException {
return this.configure("hibernate.cfg.xml");
}
默认情况下它将会配置根目录下的名为hibernate.cfg.xml的核心配置文件。你也可以通过给configure()传入一个String路径参数的方式指定某个路径下的核心配置文件。但是无论你使用哪种方法进行配置,都必须注意,xml文件必须放置在根目录(src文件夹)下被标注为resource root的文件夹。否则就无法读取。类似于SpringMVC必须配置静态资源读取路径。
2.数据库事务提交
在session对象进行数据库操作的时候,必须要使用Transaction类的对象进行事务的开始和提交,否则虽然session对象的方法执行,也不会对数据库进行操作。
public class Test {
public static void main(String[] args) {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
User user = new User();
user.setId(2);
user.setUsername("luojinting");
user.setPassword("1234");
user.setBirthday(new Date(1997,7,8));
System.out.println(user.toString());
Transaction transaction = session.beginTransaction();
session.save(user);
transaction.commit();
session.close();
}
}
最后注意session对象使用完后要进行关闭。