Java利用自定义注解、反射实现简单BaseDao(2)

 

package com.shu.dao; import com.shu.entity.User; public class UserDao implements IBaseDao<User> { }

 

//UserService.java

 

package com.shu.service; import com.shu.dao.UserDao; import com.shu.entity.User; public class UserService { public static void main(String[] args) { // TODO Auto-generated constructor stub
UserDao userDao = new UserDao(); User user = new User(); user.setName("cai"); user.setPassword("123456"); try { System.out.println(userDao.save(user)); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

--------------------------------0.0代码分割线----------------------------------------------

在这里我们最后定义了一个Service层,让它去调用dao层然后生成对应的sql语句,你可以自定义其他的Entity,比如我目录中的Order,然后定义一个OrderDao实现IBaseDao接口,定义一个OrderService调用OrderDao的save方法,同样可以生成order表对应的sql语句。

这里总结一下不足:

1.hibernate的注解可以不用赋值,所以我认为要实现无需赋值直接获取表的名称或者字段的名称,可以利用反射的方法来获取。

2.这里只做了save方法,而且只是动态生成了sql语句,并没有和数据库交互,可以包装一个factory,提供持久化方法来实现对sql语句的执行。

3.这里对sql的拼接比较粗糙,各位可以想想有没有其他更为高效的方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9fe028ae7f98e194ae59b580db55e741.html