今天成功完成了JFinal框架操作数据库。遇到了很多的问题,我在此整理一下
1.com.alibaba.druid.pool.DruidDataSource erroe {dataSource-1} init error 数据库配置文件错误
查看数据库配置文件发现url写错了,正确写法应该为:
jdbcurl=jdbc:mysql://localhost:3306/db?uerUnicode=true&characterEncoding=UTF-8&useSSL=false
2.JFinal 框架 地址栏输入 http://localhost:8088时 报错500 Internal Server Error
控制台报错信息:10月 27, 2021 4:10:33 下午 com.jfinal.core.ActionHandler error严重: Controller.UserController.index() : /
java.lang.NullPointerException: Cannot invoke "service.UserService.getAllUser()" because "this.userService" is null
此错误发生在Controller向Service层注入时报this.userService is null。
Controller层
public class UserController extends Controller { @Inject UserService userService; public void index(){ List<User> users = userService.getAllUser(); setAttr("users",users); render("user.html"); } }
Service层
public class UserService { private User userdao = new User().dao(); public List<User> getAllUser() { List<User> users = userdao.find("select *from student"); return users; }
解决方法:
在configConstants中设置
public void configConstant(Constants constants) { loadPropertyFile("config.properties"); //设置开发模式 constants.setDevMode(getPropertyToBoolean("devMode",true)); constants.setInjectDependency(true); //支持超类注入 constants.setInjectSuperClass(true); }