当前位置:网站首页>Apache DButils使用注意事项--with modifiers “public“
Apache DButils使用注意事项--with modifiers “public“
2022-07-31 04:56:00 【Alex抱着爆米花】
报错信息
Exception in thread "main" java.sql.SQLException: Cannot create
com.hsp.chapter25.Apache.Actor: class org.apache.commons.dbutils.BeanProcessor cannot
access a member of class com.hsp.chapter25.Apache.Actor with modifiers "public" Query:
select * from stu where id > ? Parameters: [1]
源代码
在queryRunner.query中给 模板类时报错
可以看到我是将Actor.class放在一起的,根据提示,应该是分开写用pulic修饰
package com.hsp.chapter25.Apache;
import com.hsp.chapter25.Druid.JDBCByDruid;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class Apache {
public static void main(String[] args) throws SQLException {
Connection connection = JDBCByDruid.getConnection();
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from stu where id > ?";
List<Actor> query = queryRunner.query(connection, sql, new BeanListHandler<>(Actor.class), 1);
for (Actor actor : query) {
System.out.println(actor);
}
JDBCByDruid.close(null, null, connection);
}
}
class Actor {
private Integer id;
private String name;
public Actor() {
//一定要给一个无参构造器[反射需要]
}
public Actor(Integer id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Actor{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
修改
分开写
1、Apache.class
package com.hsp.chapter25.Apache;
import com.hsp.chapter25.Druid.JDBCByDruid;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public class Apache {
public static void main(String[] args) throws SQLException {
Connection connection = JDBCByDruid.getConnection();
QueryRunner queryRunner = new QueryRunner();
String sql = "select * from stu where id > ?";
List<Actor> query = queryRunner.query(connection, sql, new BeanListHandler<>(Actor.class), 1);
for (Actor actor : query) {
System.out.println(actor);
}
JDBCByDruid.close(null, null, connection);
}
}
2、Actor.java
一定要设置设置属性和对应的get,set方法
如果设置了有参构造器,对应的无参构造器也要写,否则报错
默认不写构造器也是可以的
写有参构造器,无参构造器也要写
package com.hsp.chapter25.Apache;
public class Actor {
private Integer id;
private String name;
public Actor() {
}
public Actor(Integer id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Actor{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
不写构造器,也是OK的
package com.hsp.chapter25.Apache;
public class Actor {
private Integer id;
private String name;
@Override
public String toString() {
return "Actor{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
边栏推荐
- mysql存储过程
- .NET-6.WinForm2.NanUI learning and summary
- MySQL forgot password
- DVWA之SQL注入
- MySQL database installation (detailed)
- SQL语句中对时间字段进行区间查询
- ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)Solution
- 重磅 | 开放原子校源行活动正式启动
- Musk talks to the "virtual version" of Musk, how far is the brain-computer interaction technology from us
- Centos7 install mysql5.7
猜你喜欢
ERP生产作业控制 金蝶
扫雷小游戏——C语言
MySQL transaction isolation level, rounding
Minesweeper game - C language
MySQL优化之慢日志查询
On Governance and Innovation | 2022 OpenAtom Global Open Source Summit OpenAnolis sub-forum was successfully held
Simple read operation of EasyExcel
聚变云原生,赋能新里程 | 2022开放原子全球开源峰会云原生分论坛圆满召开
【wpf】wpf中的那些模板之深度解析
MySQL window function
随机推荐
Go language study notes - dealing with timeout problems - Context usage | Go language from scratch
Gaussian distribution and its maximum likelihood estimation
ES source code API call link source code analysis
SQL statement to range query time field
Summary of MySQL common interview questions (recommended collection!!!)
MySQL database must add, delete, search and modify operations (CRUD)
【py脚本】批量二值化处理图像
MySQL database addition, deletion, modification and query (detailed explanation of basic operation commands)
Reference code series_1. Hello World in various languages
The 15th day of the special assault version of the sword offer
Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions
What are the advantages and disadvantages of Unity shader forge and the built-in shader graph?
ABC D - Distinct Trio (Number of k-tuples
Information System Project Manager Core Test Site (55) Configuration Manager (CMO) Work
【ORACLE Explain 详解】
PCL calculates the point cloud coordinate maximum and its index
【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数
1. 获取数据-requests.get()
ERROR 1819 (HY000) Your password does not satisfy the current policy requirements
【wpf】wpf中的那些模板之深度解析