resultset相关知识
-
【学习笔记】ResultSet用法集锦结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。 结果集读取数据的方法主要是getXXX(),他的参数可以是整型表示第几列(是从1开始的),还可以是列名。返回的是对应的XXX类型的值。
-
java 聚合数据 天气 API接口调用public class GetDataIntoTable { public static void main(String[] args) throws Exception { Connection conn = DatabaseConnection.getConnection(); String cityName = "广州"; if (getByCityName(cityName)) { PreparedStatement pstmt = conn.prepareStatement("SELECT city,message FROM tianqi WHERE city=?"); pstmt.setString(1, cityName); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { System.out.print(rs.getString(2)); }
-
【java】对jdbc操作结果简单的映射封装1. 对jdbc做一个简单的封装,select可以返回一个javabean对象,而不是resultset。主要用了反射。这是我之前写的代码,做了简单的修改。 实现功能:a.对数据库的基本操作 增删改查 b.对查询的单条记录返回一个指定类型的javabean对象,利用java反射,jdbc ResultSet类和ResultSetMetaData类 c. 对查到的结果集返回一个List, 泛型 数据源:用到的 数据库连接池是我自己简单实现的一个连接池:【java】简单实现数据库连接池,主要为了后续实现事务的简单实现 用到的java知识 : 反射,泛型,jdbc import com.yeyeck.noob.ConnectionPollImpl;import com.yeyeck.noob.IConnectionPool;import java.lang.reflect.Field;import java.lang.refle
-
使用JDBC从数据库中查询数据的方法* ResultSet 结果集:封装了使用JDBC 进行查询的结果* 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集* 2. ResultSet 返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面,* 可以调用next()方法检测下一行是否有效,若有效,返回true,且指针下移,* 相当于iterator 对象的 hasNext() 和 next()方法的结合体* 3. 当指针定位到一行时,可以通过调用getXxx(index) 方法或 getXxx(columnName) 方法获取* 每一列的值。例如:getInt(1)获取第一列的值,getString("name")获取列名为“name”的那一列的值?@Test public void testResultSet(){ //获取id=2的customers数据表的记录,并打印  
resultset相关课程
resultset相关教程
- 4.4 ResultSet ResultSet 是结果集对象,它是 select 语句查询的结果的封装。下面列举了 ResultSet 类的常用实例方法:boolean next():将光标从当前位置向前移一行,判断是否有下一行记录;getString(String columnLable):以 Java 语言中 String 的形式获取此 ResultSet 对象的当前行中指定的值;getInt(String columnLable):以 Java 语言中 int 的形式获取此 ResultSet 对象的当前行中指定的值;getXXX():对于不同类型的数据,可以使用 getXXX() 来获取数据(例如 getString(),getInt()),另外还有一个通用的 getObject() 方法,用于获取所有 Object 类型的数据。
- 1.4 测试代码 为了测试我们的数据库配置以及 JDBCUtil 类是否成功引入,现在到 test 目录下,新建一个 JDBCTest 类:package com.colorful;import com.colorful.util.JDBCUtil;import org.junit.Test;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Timestamp;public class JDBCTest { @Test public void testJDBC() { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { // 获得链接 connection = JDBCUtil.getConnection(); // 编写 SQL 语句 String sql = "SELECT * FROM `imooc_user` where `id` = ?"; // 预编译 SQL preparedStatement = connection.prepareStatement(sql); // 设置参数 preparedStatement.setInt(1, 1); resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { int id = resultSet.getInt("id"); String nickname = resultSet.getString("nickname"); Timestamp createTime = resultSet.getTimestamp("create_time"); System.out.println("id=" + id); System.out.println("nickname=" + nickname); System.out.println("createTime=" + createTime); } } catch (Exception e) { e.printStackTrace(); } finally { // 释放资源 JDBCUtil.release(resultSet, preparedStatement, connection); } }}如果配置成功,运行单元测试,将得到如下运行结果:id=1nickname=小慕createTime=2020-07-20 16:53:19.0下面为运行截图:
- 3.2 查询商品列表 在dao包下新建一个GoodsDAO类,并写入一下内容:package com.colorful.dao;import com.colorful.model.Goods;import com.colorful.util.JDBCUtil;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;public class GoodsDAO { private Connection connection = null; private PreparedStatement preparedStatement = null; private ResultSet resultSet = null; boolean executeResult; public List<Goods> selectGoodsList() { List<Goods> goodsList = new ArrayList<>(); try { // 获得链接 connection = JDBCUtil.getConnection(); // 编写 SQL 语句 String sql = "SELECT `id`, `name`, `price` FROM `imooc_goods` where `delete_time` is null"; // 预编译 SQL preparedStatement = connection.prepareStatement(sql); resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { Goods goods = new Goods(); goods.setId(resultSet.getInt("id")); goods.setName(resultSet.getString("name")); goods.setPrice(resultSet.getDouble("price")); goodsList.add(goods); } } catch (Exception e) { e.printStackTrace(); } finally { // 释放资源 JDBCUtil.release(resultSet, preparedStatement, connection); } return goodsList; }}selectGoodsList()方法就用于查询商品列表(由于数据量不大,此处我没有对列表数据进行分页查询,大家也可以自行加入)。在service包下新建GoodsService,并调用dao层下封装好的方法:package com.colorful.service;import com.colorful.dao.GoodsDAO;import com.colorful.model.Goods;import java.util.List;public class GoodsService { private final GoodsDAO goodsDAO = new GoodsDAO(); /** * 获取商品列表 * @return 商品列表 */ public List<Goods> getGoodsList() { return goodsDAO.selectGoodsList(); }}这样,我们就完成了查询商品列表的服务层代码编写。
- 2.3 实例 我们下面通过实例代码来演示 JDBC 的简单使用,以下实例代码有这样几个步骤:加载数据库驱动;建立连接;创建 Statement 对象,用于向数据库发送 SQL 语句;获取 ResultSet 对象,取出数据,此对象代表结果集;释放资源,断开与数据库的连接。具体实例如下:package com.imooc.jdbc;import com.mysql.jdbc.Driver;import java.sql.*;public class JDBCDemo1 { public static void main(String[] args) throws SQLException { // 1. 加载数据库驱动 DriverManager.registerDriver(new Driver()); // 2. 建立连接 final String url = "jdbc:mysql://localhost:3306/jdbcdemo"; // 数据库 url final String user = "root"; // 数据库用户名 final String password = "123456"; // 数据库密码 Connection connection = DriverManager.getConnection(url, user, password); // 3. 创建 Statement 对象,用于向数据库发送 SQL 语句 String sql = "SELECT * FROM `user`"; Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(sql); // 4. 获取 ResultSet 对象,取出数据,此对象代表结果集 while (resultSet.next()) { int id = resultSet.getInt("id"); String username = resultSet.getString("username"); String nickname = resultSet.getString("nickname"); String pwd = resultSet.getString("password"); System.out.println("id=" + id + "; username=" + username + "; nickname=" + nickname + "; password=" + pwd + '\r'); } // 5. 释放资源,断开与数据库的连接(调用close()方法) // 5.1 释放 ResultSet resultSet.close(); // 5.2 释放 Statement statement.close(); // 5.3 释放 Connection connection.close(); }}运行结果:id=1; username=Colorful; nickname=Colorful3; password=123456id=2; username=imooc; nickname=小慕; password=123456id=3; username=Lillian; nickname=小李; password=123456看了实例代码,你可能有些晕,这写类都是干嘛的呀?别担心,我们下面就来一一讲解。
- 3.2 JsonArray 处理器 与 JsonObjectTypeHandler 一样,在 handler 包下新建 JsonArrayTypeHandler 类,继承 BaseTypeHandler 类,并将具体方法的实现从 JSON.parseObject 改变为 JSON.parseArray,如下:@MappedJdbcTypes(JdbcType.VARCHAR)@MappedTypes({JSONArray.class})public class JsonArrayTypeHandler extends BaseTypeHandler<JSONArray> { @Override public void setNonNullParameter(PreparedStatement preparedStatement, int i, JSONArray o, JdbcType jdbcType) throws SQLException { preparedStatement.setString(i, JSON.toJSONString(o)); } @Override public JSONArray getNullableResult(ResultSet resultSet, String s) throws SQLException { String t = resultSet.getString(s); // // 变成了 parseArray return JSON.parseArray(t); } @Override public JSONArray getNullableResult(ResultSet resultSet, int i) throws SQLException { String t = resultSet.getString(i); // // 变成了 parseArray return JSON.parseArray(t); } @Override public JSONArray getNullableResult(CallableStatement callableStatement, int i) throws SQLException { String t = callableStatement.getString(i); // 变成了 parseArray return JSON.parseArray(t); }}
- 4. JDBC 几个类的详解 在上面的实例程序中,我们用到了几个 JDBC 的类:DriverManager、Collection、Statement 和 ResultSet,下面我们将详细介绍这几个类。
resultset相关搜索
-
radio
radiobutton
radiobuttonlist
radiogroup
radio选中
radius
rails
raise
rand
random_shuffle
randomflip
random函数
rangevalidator
rarlinux
ratio
razor
react
react native
react native android
react native 中文