一个简单的问题,在JAVA访问数据库查询到结果后,怎样把这结果给对应的类(VO)赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的问题,在JAVA访问数据库查询到结果后,怎样把这结果给对应的类(VO)赋值相关的知识,希望对你有一定的参考价值。

是这样的:我的一个表存放用户数据.里面有这些项:UID,name,password,等
一般来说就是用ResultSet rs;取出数据,然后像这样赋值,得到这条记录的一个类:
String UID,name;
UID=rs.getString("UID");
name=rs.getString("name");
User uuuuuu=new User(UID,name,password);

我的问题是:一旦我以后觉得用户表里面的项不够了,要增加些,比如加个头像链接等.下面代码就会多一项:
头像链接=rs.getString("头像连接");
User uuuuuu=new User(UID,name,password,头像连接);

但是我以后每增加一项,就要这样加,非常非常麻烦.因为我的代码里面很多类似上面的代码,作这种更改是非常慢的.所以有没有办法,把一条记录取出来后,自动帮我赋值? 也就是一句话搞定.
如果有第三方包的话,请不要给出包名,说说具体怎么做?或者,有不使用第三方包实现的方法吗?

看你怎么查了. 如果是用jdbc 就循环结果集 new vo , 再往vo里扔值
如果是Hibernate或Ibatis这种,就直接设置好属性映射 , 会自动把值扔到实体里的
参考技术A 页面上全用map,直接把结果向页面上丢,用c标签显示就可以了

java换成ip访问数据库无法访问

一.错误现象

1.1 问题描述

springboot使用双数据源:本意是从第一个数据库中查询导数据然后加入另外一个数据库,代码一切正常后运行结果如下报错,

仔细一排查发现数据是查询到的,说明是入数据的库出问题了,结果发现我之前连接的时候是用\'localhost\'去连接的,在项目中配置成ip就不行了,

从报错中的意思就是安装了数据库的服务器不允许部署项目的服务器进行远程连接。也就是权限问题,修改权限就可以了。

spring.datasource.db2.jdbc-url=jdbc:mysql://192.168.95.2:3306/app_database?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.db2.username=root
spring.datasource.db2.password=admin
spring.datasource.db2.driver-class-name=com.mysql.jdbc.Driver

 

[{password=app_manage, is_enable=1, account_name=系统管理员, id=1, account=appmanage}]
[DEBUG] 2020 七月 16 17:09:52 -->[SqlSessionUtils.java:97] Creating a new SqlSession
[DEBUG] 2020 七月 16 17:09:52 -->[SqlSessionUtils.java:148] SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@570ba13] was not registered for synchronization because synchronization is not active
[INFO ] 2020 七月 16 17:09:52 -->[HikariDataSource.java:110] HikariPool-2 - Starting...
[WARN ] 2020 七月 16 17:09:52 -->[DriverDataSource.java:68] Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
[ERROR] 2020 七月 16 17:09:53 -->[HikariPool.java:574] HikariPool-2 - Exception during pool initialization.
java.sql.SQLException: null,  message from server: "Host \'PCMICRO-D7ND2F2\' is not allowed to connect to this MySQL server"
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)

1.2 解决办法

找到数据库默认就有的user表,这个可以通过工具找,因为我的远程连接工具是Navicat,user表就在这里

 

 

 比如我这里项目用的用户名是root,默认只允许使用localhost连接,那么就把"localhost"的Host改成%,就可以了,之后还要执行一下执行刷新权限:flush privileges(它的执行就像sql语句一样执行就可以了);

 

 

1.3 步骤也可以这样操作:

在mysql的bin目录下执行:mysql -u root -p 密码 登陆到数据:
执行use mysql;
select host,user from user;
可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。
调整方法:
执行:update user set host=\'%\' where user =\'root\';
执行刷新权限:flush privileges;
可以测试外网连接mysql服务器。

 

以上是关于一个简单的问题,在JAVA访问数据库查询到结果后,怎样把这结果给对应的类(VO)赋值的主要内容,如果未能解决你的问题,请参考以下文章

如何对分库后的数据进行分页查询

最受欢迎Java数据库访问框架大比拼,你独爱哪一款?

java、jsp查询页面根据姓名模糊查询出5条数据,点其中一条数据的修改,修改完成后返回到之前5条结果页面

使用 $and 查询后,结果不会在 DOM 上呈现

关于网站页面访问量统计的问题

VBA/SQL ACCESS:将查询结果复制到其他访问数据库中的表