您应该使用 some DAOFactory
,此类用于获取连接。为了反映数据库中的表,您应该创建DTO - Data Tranfer Objects
表示实体的表。因此,如果您有 table User
,只需UserDTO.java
使用属性、getter 和 setter 进行创建。与数据库通信的类是DAO - Data Access Object
. 您应该只在此处创建用于从数据库中获取数据的 SQL 语句和方法。首先是精心设计的结构。然后你的代码会变得更干净、更快速、更安全。我建议您创建自己的ORM
. 所以,看看和一些不同框架的测试
易ORM
double count = 0;
TransDB trans = new TransDB() ;
List<Trans> list = new ArrayList<Trans>();
list = trans.getAll();
for (Trans element : list)
{
count+= element.getData();
}
...
休眠
double count = 0;
Session session = null;
List<Trans> list = new ArrayList<Trans>();
list = HibernateUtil.getSessionFactory().openSession();
list = (List<Trans>) session
.createQuery("from Trans").list();
for (Trans element : list)
{
count += element.getData().doubleValue();
}
...
并比较??
评估(以毫秒为单位)
EasyORM:MySQL:init - 6344,avg - 4868 MS SQL:init - 8126,avg - 6752
休眠: MySQL:init - 27406,avg - 23728 MS SQL:init - 28605(+250%),avg - 24912
所以你自己的ORM
实际生成SQL script
的顺序比 Hibernate(to 10) 快,为什么?通过在层间插入肯定不能去提高吞吐量。这只是一项测试,我还有其他测试。所以对我来说,我建议您创建自己的ORM
,这里还有一些缺点,例如时间消耗或使用的有问题的更改,DMS
但作为对生成的命令的完全控制的优点,您可以使用特定于特定的功能DMS
(ORDM、特殊命令等)。所以我认为这不是Hibernate
最好的,真的不是。