ORM---对象关系映射模型,是Hibernate的核心模型。
它指的是在单个组件内负责所有实体域对象的持久化,封装数据访问的细节。简单的说是实现三层模式中业务逻辑与数据访问的分离。
一般的,对数据库的操作是通过JDBC实现的:举例看下:
public void delete(Object o)
{
Connection con = null;
PreparedStatement stmt = null;
try{
con = getConnection();
if(o.getID != null ){
stmt = con.preparedStatement("DELETE FROM user where" +"id=""123456");
stmt.setID(0,o.getId());
stmt.executeUpdate();
con.commit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我们可以从上面的代码中发现,数据访问语句(SQL)与业务逻辑处理混在一起了。有经验的人会知道,这样对开发维护都造成很大影响。
可是,有人会说,将那些数据访问的代码封装在一个类中,提供API不就可以解决问题了。
但是问题不是那么简单,尽管将那些访问操作的实现都封装在一起了,但是同意会遇到一些问题,封装类中会充满很多相类似的方法,比如CURD等操作都需要查询,每个方法都要写入查询的语句会使得程序看起来相当臃肿。而且主要问题还是没有得到很好的解决――――持久化层的同时又与关系模型和域模型耦合了,而且咋看之下还显得缺乏弹性。
温馨提示:答案为网友推荐,仅供参考