资讯详情

java.sql.SQLException: Cannot create xxx 解决办法

java.sql.SQLException: Cannot create xxx 解决方案前言:纪念第一个博客:一直想写博客,不知道写什么,最近在学习Java框架,只是抓住机会,胡说八道,代码

//使用DbUtils里的QueryRunner操作数据库 private QueryRunner queryRunner = new QueryRunner();  /** * 返回一个查询javaBean的sql语句 * * @param type 返回的对象类型 * @param sql 执行的sql语句 * @param args sql相应的参数值 * @param <T> 泛型的返回类型 * @return */ public <T> T queryForOne(Class<T> type, String sql, Object... args) {   Connection con = JdbcUtils.getConnection();   try {     return queryRunner.query(con, sql, new BeanHandler<T>(type), args);   } catch (SQLException e) {     e.printStackTrace();   } finally {     JdbcUtils.close(con);   }   return null; }  String sql = "select `id` , `name` , `author` , `price` , `sales` , `stock` , `img_path` from t_book where id = ?"; System.out.println(queryForOne(Book.class, sql, id));  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 对应的JavaBean类  public class Book {   private Integer id;   private String name;   private String author;   private BigDecimal price;   private Integer sales;   private Integer stock;   private String imgPath; } 1 2 3 4 5 6 7 8 9

代码很简单,通过传入JavaBean类,sql句子和句子中的参数,sql语句查询结果封装成对应的JavaBean对象,return该对象。

遇到的问题如下:无法创建相应的对象

最初的疑问出在于sql在句子中,即数据库中的属性名和JavaBean数据库的最后一个属性是私有变量名不一致img_path”,JavaBean类中的变量名是imgPath,真的不一样,一个按照python命名规范命名,一个按照规范命名Java命名规范命名,于是修改sql语句如下

String sql = "select `id` , `name` , `author` , `price` , `sales` , `stock` , `img_path` imgPath from t_book where id = ?"; 1 查询时,将最后一个属性更改为一个别名,并将其更改为相应JavaBean类中的变量名。结果还是一样。

终于找到了答案,JavaBean类中没有写无参结构,因为创建Bean使用对象的过程newInstance()方法,该方法只能调用无参结构,类别中没有写无参结构,当然也不能创建对象。当初写JavaBean写变量,右键getter,setter,constructor,就完事了。现在我知道问题了。加上无参结构,代码没有bug,楼下的叔叔看了都说好,又能愉快地学习了。 ———————————————— 原文链接:https://blog.csdn.net/weixin_43476106/article/details/114028736

标签: 韩国继电器wyu

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台