新建一个数据表:

use  qy97;
create table student(
id int primary key auto_increment,
sname varchar(50),
gander varchar(50),
age int,
score int
);
insert into student values
(1,'张三','男',18,20),
(2,'小红','女',17,97),
(3,'小明','男',22,100),
(4,'小强','男',16,80),
(5,'小花','女',20,99);

然后我们用Java代码来读取该数据库的所有信息,并将每一条信息都放进一个学生对象中,首先需要建一个学生类,类名与表名一致,并且类中的属性也要与表中的属性一致,实现get和set方法,要注意数据类型,代码如下:

package com.zs.Demo;

public class Student {
private int id;
private String sname;
private String gander;
private int age;
private int score; public Student(){
super();
} public Student(int id, String sname, String gander, int age, int score) {
this.id = id;
this.sname = sname;
this.gander = gander;
this.age = age;
this.score = score;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public String getGander() {
return gander;
} public void setGander(String gander) {
this.gander = gander;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public int getScore() {
return score;
}
// 重写tostring 方法方便查看
@Override
public String toString() {
return "Student{" +
"id=" + id +
", sname='" + sname + '\'' +
", gander='" + gander + '\'' +
", age=" + age +
", score=" + score +
'}';
} public void setScore(int score) {
this.score = score;
} }

然后链接数据库查询所有数据,并将数据存入对象中,将对象存入集合中,调用之前写的JDBCUtils工具类:

package com.zs.Demo;

import JDBCUtils.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList; public class Demo3 {
public static void main(String[] args) {
try {
getStudent();
} catch (SQLException e) {
e.printStackTrace();
}
} private static void getStudent() throws SQLException {
Connection conn = JDBCUtils.getConnection();
String sql="select * from student;";
PreparedStatement pre = conn.prepareStatement(sql);
//执行sql语句,得到结果集
ResultSet rs = pre.executeQuery();
// 创建集合存储对象
ArrayList<Student> stuArr = new ArrayList<>();
while (rs.next()) {
Student s = new Student();
// 设置对象的变量值
s.setId(rs.getInt("id"));
s.setSname(rs.getString("sname"));
s.setGander(rs.getString("gander"));
s.setAge(rs.getInt("age"));
s.setScore(rs.getInt("score"));
// 将对象添加至集合
stuArr.add(s);
}
for (Student student : stuArr) {
System.out.println(student);
}
}
}

运行结果:

Java学习笔记40(sql:将数据库内数据存入对象中)的更多相关文章

  1. Java学习笔记:基本输入、输出数据操作实例分析

    Java学习笔记:基本输入.输出数据操作.分享给大家供大家参考,具体如下: 相关内容: 输出数据: print println printf 输入数据: Scanner 输出数据: JAVA中在屏幕中 ...

  2. 【初学Java学习笔记】SQL语句调优

    1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认 ...

  3. Java学习笔记之[ 利用扫描仪Scanner进行数据输入 ]

    /*********数据的输入********//**利用扫描仪Scanner进行数据输入 怎么使用扫描仪Scanner *1.放在类声明之前,引入扫描仪 import java.util.Scann ...

  4. Java学习笔记40(缓冲流)

    缓冲流: 在读写文件的各种流中,最令人烦恼的就是效率问题, 而缓冲流的目的就是提高读写效率 字节输出缓冲流: package demo; import java.io.BufferedOutputSt ...

  5. 【转】JAVA学习笔记----PL/SQL最差实践

    1. 超长的PL/SQL代码   影响:可维护性,性能   症状:    在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包.为什么是最差:    太长的PL/SQL代码不利于阅读,第三方工 ...

  6. Spring学习笔记3——使用注解的方式完成注入对象中的效果

    第一步:修改applicationContext.xml 添加<context:annotation-config/>表示告诉Spring要用注解的方式进行配置 <?xml vers ...

  7. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  8. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  9. 20145230《java学习笔记》第九周学习总结

    20145230 <Java程序设计>第9周学习总结 教材学习内容 JDBC JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作, ...

随机推荐

  1. TCP/IP协议详解内容总结(怒喷一口老血)

    TCP/IP协议(本文源自外部链接) TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络 ...

  2. 创建servlet程序知识点详解---servlet-day07

    情景1: 京东在买东西的时候,只有结帐的时候才会要求必须登录账户 #1.状态管理 ##(1)什么是状态管理? 将浏览器与web服务器之间多次交互当做一个整体来处理,并且将多次交互所涉及的数据(即状态) ...

  3. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  4. G711 G723 G729线路占多少带宽问题

    G.711   G.711   也称为PCM(脉冲编码调制),是国际电信联盟订定出来的一套语音压缩标准,主要用于电话.它主要用脉冲编码调制对音频采样,采样率为8k每秒.它利用一个 64Kbps 未压缩 ...

  5. 自动化测试系列:如何实现Selenium自动化读取H5手机缓存

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6890675.html 前言: 由于Se ...

  6. Paper Read: Convolutional Image Captioning

    Convolutional Image Captioning 2018-11-04 20:42:07 Paper: http://openaccess.thecvf.com/content_cvpr_ ...

  7. P1122 最大子树和

    传送门 思路: 任意找一个点为树根.DFS 遍历树,如果子树和为负就直接跳过,不然就统计进答案.( 虽是任意取一点为根,但不一定从这个点出发能够取得最优解,要开一个 ans 记录一下最大值.) 标程: ...

  8. get函数

    dict={"name":"jary","age":22}print(dict.get("age")) # 通过键值找到 ...

  9. FileProvider 添加二级目录

    我们在做Android N升级适配的时候 传统的Intent调用文件的方式会被认为不安全的 然后系统需要让我们使用更加安全的FileProvider的方法去构建intent请求 如 拍照,安装新的ap ...

  10. 机器学习之决策树_CART算法

    目录 3.CART算法(classification and regression tree tree) 3.1 CART生成算法(回归树生成和分类树生成) 3.2 CART剪枝 决策树基本知识参考, ...