初次使用jooq,像往常一样像通过在service注入生成的Dao然后在方法中调用,没想到直接报错:Cannot execute query. No Connection configured;点到UserDao源码里看到如下所示:
我们用@Autowired注入的是一个没有任何配置的UserDao,需要我们用第二个构造方法构造一个有configuration的实例;
完整实现方式如下:
public class UserServiceImpl implements UserService { @Autowired DSLContext context; private Configuration configuration; private UsersDao usersDao; @PostConstruct//表示在UserServiceImpl构造完成之后执行 private void createDao(){ usersDao=new UsersDao(context.configuration()); } private com.example.demo.generator.tables.Users u= com.example.demo.generator.tables.Users.USERS.as("u"); @Override public Result selectById(Integer id) { //自己编写sql查询 /*Result result=context.select(u.AGE,u.CITY) .from(u).where(u.ID.eq(1)).fetch(); System.out.println(result.get(0).toString());*/ //使用自动生成的dao Users user=usersDao.fetchOneById(id); System.out.println(user.toString()); return null; } }
来源:oschina
链接:https://my.oschina.net/u/3734816/blog/3206996