在进行jdbc操作时,出现了如下图的bug: 错误原因:在执行sql语句后,进行遍历,但是取值与数据库中的列名不一致。...主要是因为字段名错误,如下,本来应该从数据库中取emp表中的realName字段的数据,却取成了reaName字段的数据,导致出现列名无效的问题 ps:一定要认真!!! last ps:
Cause: java.sql.SQLException: 无效的列类型: 1111 ; uncategorized SQLException for SQL []; SQL state [99999]...; error code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111 org.springframework.web.servlet.FrameworkServlet.processRequest
但是在实际准备发布的时候,如果没有切换证书,那么将会使用本地创建的证书进行打包,而在上传应用商店步骤失败 在上传应用商店的时候,可以看到如下的提示 BitStamp_2.7.3.0_x86_x64_arm_bundle.appxupload36.0...MB 无效的软件包系列名称: 43179.1161685EE70AE_s32203668fxst (应为: 43179.1161685EE70AE_ajj8jc175maf4) 无效的软件包发布者名称...: CN=lindexi (应为: CN=227D1644-D24B-430C-AFA3-3FD86CE65409) 原因是我的本地测试证书里面生成的信息里面的发布者等和应用商店要求的不符合,因此提示...无效的软件包系列名称 和 无效的软件包发布者名称 上传失败 解决方法是在发布之前,先删除本地创建的证书,然后右击项目,选择发布,点击将应用程序与应用商店关联。...如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页
新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦。...之所以把它称之为工具而不是框架,是因为它和其他的ORM框架还是由很大的区别(例如Hibernate)。...{ //当表的列名和实体的属性名不一致时,在sql中使用as关键字给当前列指定别名, //别名和实体的属性名对应即可 String sql = "SELECT...> */ public List findUsers() throws SQLException{ //当表的列名和实体的属性名不一致时,在sql中使用as关键字给当前列指定别名... findUserById(int id) throws SQLException{ //当表的列名和实体的属性名不一致时,在sql中使用as关键字给当前列指定别名
Rafy 快一两年没有大的更新了。并不是这个框架没人维护了。相反,主要是因为自己的项目、以及公司在使用的项目,都已经比较稳定了,也没有新的功能添加。...但是最近因为外面使用了 Rafy 的几个公司,找到我,提出了一些明确的需求,期望我做一些相应的升级。所以可能最近几个月,会陆续更新 Rafy 框架。...最近升级后,可能截止到明年,会陆续支持 NET5-6 上的一些功能。 今天这篇博客,主要是记录了一个客户提出了多次的需求:实体更新时,只更新改动的字段。...Rafy 框架会管理好领域框架的状态变更。事实上,这几年确实没有升级,而开发者也用得很好,很少有人关注。...但是这次客户提出意见,由于他们的实体类中的属性实在太多了,查看日志中的更新语句时,较难定位具体已经修改的属性。再加之,Rafy 接下来会添加一个只查询部分实体属性的功能。所以就一并完成了。
{ ps.setString(i,String.valueOf(parameter.toJSONString())); } /** * 根据列名,获取可以为空的结果... SpringBoot+MyBatis 框架,数据库是 MySQL,订单数据格式如下: { all_price: 32 beizhu: "...,进行转换的自定义转换器,转换为实体类的JSONArray属性 * MappedTypes注解中的类代表此转换器可以自动转换为的java对象 *...ps.setString(i, String.valueOf(parameter.toJSONString())); } //根据列名...,进行转换的自定义转换器,转换为实体类的JSONObject属性 * MappedTypes注解中的类代表此转换器可以自动转换为的java对象 *
metaObject, String columnPrefix) throws SQLException { //第一步:建立好数据库列名和实体类属性名的映射关系 List列名和实体类属性名的映射关系 如下图,Mybatis建立好的数据库列名和实体类属性名的映射关系: 第二步:根据mapping.column数据库列名,从查询结果集中获取到具体某一列的值 第三步...本文主要总结的是没有嵌套结果集的场景,感兴趣的小伙伴可以去看下嵌套结果集的处理流程,大体其实都是类似的,使用到了列名->属性映射关系,通过反射创建对象,拿到set方法,通过metaObject设置属性,...三、查询结果集封装流程 还是以一张流程图来总结一下查询结果集封装的过程: 四、总结 本篇文章详细总结了Mybatis查询结果集封装的整个流程,包括怎么建立数据库列名和实体类属性之间的映射、反射创建ResultType...实体类对象、以及如何从结果集中拿到查询值,动态通过metaObject设置到返回类型实体类属性中等等。
ResultSet 对象int getInt(int colIndex)以int形式获取结果集当前行指定列号值int getInt(String colLabel)以int形式获取结果集当前行指定列名值...getString(int colIndex)以String 形式获取结果集当前行指定列号值StringgetString(String colLabel)以String形式获取结果集当前行指定列名值作为一种好的编程风格...准备和数据库表格相对应的一个实体类,用于封装结果集中的每一条数据,数据库表格中的每一个字段就是实体类的一个属性,实体类的一个对象就可以用于存储数据库表中的一条记录准备实体类package com.lanson.entity...* 3属性的数据类型和列的数据类型保持一致* 4属性名和数据库表格的列名要保持一致* 5所有的属性必须都是私有的 (出于安全考虑)* 6实体类的属性推荐写成包装类* 7日期类型推荐写成java.util.Date...* 8所有的属性都要有get和set方法* 9必须具备空参构造方法* 10实体类应当实现序列化接口 (mybatis缓存 分布式需要 )* 11实体类中其他构造方法可选* */public class
本文链接:https://blog.csdn.net/weixin_42528266/article/details/103421421 MyBatis 框架概述 mybatis 是一个优秀的基于 java...的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。...采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。...为了我们能够更好掌握框架运行的内部过程,并且有更好的体验,下面我们将从自定义 Mybatis 框架开始来学习框架。此时我们将会体验框架从无到有的过程体验,也能够很好的综合前面阶段所学的基础。...4、对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维护,如果能将数据库记 录封装成 pojo 对象解析比较方便。
4.1 错误信息: 4.2 错误描写叙述 4.3 错误解决方法 5、列名 ‘bookId’ 无效 5.1 错误信息: 5.2 错误描写叙述 5.3 错误解决方法 6、Value can...“main” java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘jspBook’ 无效...; 5、列名 ‘bookId’ 无效 5.1 错误信息: Exception in thread “main” java.sql.SQLException: [Microsoft][SQLServer...2000 Driver for JDBC][SQLServer]列名 ‘bookId’ 无效。...查询数据库,当中bookId代表列名,但book表中并没有名称为bookId的列。 5.3 错误解决方法 将jspBook改为正确的表名。
在实际的开发中,如果直接使用JDBC开发,是非常繁琐且麻烦的,所以现在的企业在开发web程序时,连接数据库一定会使用一些JDBC的框架。 在学习框架之前,得先掌握一些基础知识。...JDBC元数据(编写JDBC框架的基础) 首先就来学习一下JDBC元数据。 元数据就是数据库、表、列的定义信息。...新建com.wang.domain包,然后在该包下创建实体类Account。...; JDBCFramework.update(sql, account.getId()); } 因为现在有了自己编写好的框架,所以实现一个删除方法是非常简单的。...id为3的用户数据被成功删除。 插入、修改方法和删除类似。但是该框架无法用于查询,因为没有查询所对应的结果集。 我们来抽取一个查询方法,用于数据库表的通用查询。
2.自定义JDBC框架 2.1数据库的源信息 DataBaseMetaData(了解):数据库的源信息 java.sql.DataBaseMetaData:封装了整个数据库的综合信息 例如:...实体类 /* 学生实体类 */ public class Student { private Integer sid; private String name; private...Object columnValue = rs.getObject(columnName); //6.6列名其实就是对象中成员变量的名称。...Object columnValue = rs.getObject(columnName); //6.6列名其实就是对象中成员变量的名称。...DataSourceUtils.close(con,pst,rs); } //将结果返回 return obj; } } 2.4测试自定义JDBC框架的使用
后面学习框架会有自己的框架DBUtils,学习本节DBUtils的目的是掌握“这一类”JDBC封装包的使用方法,为后续学习开路。 分页是数据查询以及数据展示中非常重要的一环 ---- 1....javabean对象中,然后再将这些对象存入list中; @Test public void query4() throws SQLException{...map中,键为列名,值为各列值; @Test public void query5() throws SQLException{ QueryRunner...map中,键为列名,值为各列值;然后再将map存入list中; @Test public void query6() throws SQLException{...可以看到,以上至少包含: 当前搜索结果(多个被搜索实体–List) 当前页码(currentPage) 总页数(totalPage) 若是写过爬虫,肯定知道事实上还有一个数据是固定的: 当前页搜索结果显示条数
前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想的开发框架,必然要处理领域实体到数据库表之间的映射,即包含了 ORM 的功能。...而这些场景如果还让开发人员自己去编写复杂 Sql 语句,不但框架的易用性下降,而且由于写了过多的 Sql 语句,还会让开发人员面向领域实体来开发的思想减弱。...旧代码讲解 最初采用的 Lite ORM 是一个轻量级的 ORM 框架,采用在实体对象上标记特性(Attribute)来声明实体的元数据,并使用链式接口来作为查询接口以方便开发人员使用。...IQuery 作为描述查询的核心类型,被重命名为 IPropertyQuery,所有方法的参数也都直接面向 Rafy 实体的《托管属性》。但是在整体结构上,还是与原框架保持一致。...重构的同时,我们为能想到的场景都编写了测试用例: 目前,框架版本也升级到了 2.23.2155。 有兴趣的同学,了解、下载最新的框架,请参考:《Rafy 领域实体框架发布!》。
这里可以进行实际的业务操作,例如存到一个对应的实体类,返回给前端 //这里是获取的 System.out.println(resultSet.getString...(1)); System.out.println(resultSet.getString(2)); } } catch (SQLException e) {...private String databaseName; //数据库名称 private String tableName; //表名称 private String xData; //x轴数据列名...private String yData; //y轴数据列名 第二步 将配置类传入到工具类,然后工具类执行数据获取操作,将获取到的数据存入到一个实体类然后返回给前端进行渲染生成折线图就可以了。...工具类就直接修改上面的jdbc代码当中的5个参数,将获取到的数据进行封装成实体类返回给前端就可以了。 重点:由于列名是动态的,返回的结果集获取数据时,直接通过列的顺序来获取就行了。
colIndex) 以int 形式获取ResultSet结果集当前行指定列号值 int getInt(String colLabel) 以int 形式获取ResultSet结果集当前行指定列名值...close() 关闭ResultSet 对象 package com.itheima.entitydemo; 2 3 import java.util.Date; 4 5 /* 6 * 一般实体类的类名和数据库的表名一致...(注意:若数据库的表名单词带s的,则实体类名就去掉s) 7 * 实体类的成员变量名和数据库表中的列名一致。...注意: * 一般实体类的类名和数据库的表名一致。(注意:若数据库的表名单词带s的,则实体类名就去掉s) * 实体类的成员变量名和数据库表中的列名一致。...(这是一个约定,网站开发的时候会提到) 后续演示代码的实体类的类名为User。 其实名字可以随意起的,但是一般要求我们做到见名知意。 五、实现一个用户登录的功能 ?
property 属性,此时无法完成 * 列名与实体类属性建立映射关系。...从 ResultSetWrapper 中获取未配置在 中的列名 遍历上一步获取到的列名列表 若列名包含列名前缀,则移除列名前缀,得到属性名 将下划线形式的列名转成驼峰式 获取属性类型...若未配置,则表明列名未与实体类的某个字段形成映射关系,此时该列名存入 unmappedColumnNames 中。这样,列名的分拣工作就完成了。分拣过程示意图如下: ?...如上图所示,实体类 Author 的 id 和 name 字段与列名 id 和 name 被配置在了 中,它们之间形成了映射关系。...弄懂了未映射列名获取的过程,自动映射的代码逻辑就不难懂了。好了,关于自动映射的分析就先到这,接下来分析一下 MyBatis 是如何将结果集中的数据填充到已映射的实体类字段中的。
这里可以进行实际的业务操作,例如存到一个对应的实体类,返回给前端 //这里是获取的 System.out.println(resultSet.getString(1));...System.out.println(resultSet.getString(2)); } } catch (SQLException e) { System.out.println(...private String databaseName; //数据库名称 private String tableName; //表名称 private String xData; //x轴数据列名...private String yData; //y轴数据列名 第二步 将配置类传入到工具类,然后工具类执行数据获取操作,将获取到的数据存入到一个实体类然后返回给前端进行渲染生成折线图就可以了。...工具类就直接修改上面的jdbc代码当中的5个参数,将获取到的数据进行封装成实体类返回给前端就可以了。 重点:由于列名是动态的,返回的结果集获取数据时,直接通过列的顺序来获取就行了。
*/ UserDao userDao = new UserDao(); userDao.retrieve(22); } } 2.实体类的写法...class User { /** * 1.实体类的类名一般和数据库中的相应的表名相同:如t_user对应的实体类为User * * 2.实体类中的属性一般与表中的列名相同... UserDao { /** * 说明: * 1.某个实体类对应的Dao一般写成(类名+Dao),如User类对应Dao类为:UserDao * * ...2.Dao中封装了对对应实体类的所有的CRUD的操作!!...,我们发现几个方法中的代码有很多重复的!!
领取专属 10元无门槛券
手把手带您无忧上云