我在寻找更“改进的方法”来实现这一点,我有一种方法,从一个id中获取所有记录,然后“映射”到一个类中,我有大约200个“标记”要映射,这将是一个非常长的if链。。。例子:
Connection conn = ServerJDBCConnection.getInstance().getConnection(....);
PreparedStatement pstmt = null;
ResultSet rs = null;
StringBuffer SQL = new StringBuffer("");
SQL.append(" select tag,value from dms_table where id =?");
pstmt = conn.prepareStatement(SQL.toString());
pstmt.setString(1, myid);
DMSClass dmsClass = new DMSClass(myid);
String tag = "";
rs = pstmt.executeQuery();
while (rs.next()) {
tag =rs.getString("TAG").trim();
if (tag.equals("Q1"))
dmsClass.setQ1(rs.getString("value"));
if (tag.equals("Q2"))
dmsClass.setQ2(rs.getString("value"));
if (tag.equals("Q3"))
dmsClass.setQ3(rs.getString("value"));
if (tag.equals("Q4"))
dmsClass.setQ4(rs.getString("value"));
.....
}
然后,您可以使用反射,在应用程序运行时和整个应用程序生命周期中创建映射,ypu可以将其用于设置如下字段值-
public class Main {
static final Map<String, Field> fieldMap = new HashMap<>();
public static void main(String[] args) {
for (Field field : DMSClass.class.getDeclaredFields()) {
field.setAccessible(true);
fieldMap.put(field.getName(), field);
}
}
public static void getFromDB(){
..........
.........
while (rs.next()) {
tag =rs.getString("TAG").trim();
fieldMap.get(tag).set(dmsClass, rs.getString("value"));
}
}
}
我有一个用户类,有16个属性,比如名字,姓氏,出生日期,用户名,密码等...这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。我想将每一列映射回用户属性,但我这样做的效率似乎非常低。例如,我正在做: 也就是说,我检索所有的列,然后通过将所有的列值插入用户构造函数来创建用户对象。 有人知道更快、更整洁的方法吗?
Navicat 会依源表或集合对字段类型和长度作出假设。你可以从下拉式列表选择你所需的类型。 【提示】导入多个表或集合时,你可以从“源表”或“源集合”下拉式列表选择其他表或集合。 如果你导入数据到现有的表或集合,你则需要手动映射源字段名到目标,或右击并从弹出式菜单选择“智慧配对全部字段”、“直接匹配全部字段”和“全部取消匹配”来进行快速匹配。 如果你透过 ODBC 导入,“条件式查询”按钮会打开“
Navicat 会依源表或集合对字段类型和长度作出假设。你可以从下拉式列表选择你所需的类型。 【提示】导入多个表或集合时,你可以从“源表”或“源集合”下拉式列表选择其他表或集合。 如果你导入数据到现有的表或集合,你则需要手动映射源字段名到目标,或右击并从弹出式菜单选择“智慧配对全部字段”、“直接匹配全部字段”和“全部取消匹配”来进行快速匹配。
我试图找到一种方法,在JPQL查询中放置一个计算字段,以映射到Spring Boot中的实体。 我刚才的例子列出了一个静态数字,但我打算将来也将其用于聚合。 我在尝试运行查询时不断收到以下消息: “类[Ljava.lang.Object;不能强制转换为类com.School([Ljava.lang.Object;位于加载器“bootstrap”的模块java.base中;com.School位于加
Navicat 会依源表或集合对字段类型和長度作出假设。你可以从下拉式菜单选择你所需的类型。 【提示】导入多个表或集合时,你可以从下拉式菜单选择其他表或集合。 如果你导入数据到现有的表或集合,你则需要手动映射源字段名到目标,或按住 Control 键并点按字段,然后选择“智慧匹配全部字段”、“按次序匹配全部字段”和“全部取消匹配”来进行快速匹配。 如果你透过 ODBC 导入,“条件式查询”按钮会打
我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?