新建一个数据表:

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. 怎样从外网访问内网Sysbase数据库

    外网访问内网Sysbase数据库 本地安装了Sysbase数据库,只能在局域网内访问,怎样从外网也能访问本地Sysbase数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Sys ...

  2. java web 的 几种跨域方式

  3. Html ul、dl、ol 标签

    Html ul.dl.ol 标签 <html> <body> <!-- ul 标签指定字符断点,左边带一个“·”点--> <ul> <!-- li ...

  4. Python 进程间数据交互

    进程间通信:进程之间必须需要中间件. 不同进程间内存是不共享的,要想实现两个进程间的数据交换     Queues:实现传输两个进程的数据 线程queue,访问数据只能在一个进程内进行线程与线程之间的 ...

  5. (转载)基于Unity~UGUI的简单UI框架(附UIFramework源码)

    此博客跟随siki老师的课程笔记生成,感谢siki老师的辛勤付出! 此框架功能较简单,适用于学习,可以很好的锻炼我们的设计思想 框架源码地址: UIFramework litjson.dll下载地址: ...

  6. LINQ之路13:LINQ Operators之连接(Joining)

    Joining IEnumerable<TOuter>, IEnumerable<TInner>→IEnumerable<TResult> Operator 说明 ...

  7. poj 3304 Segments 线段与直线相交

    Segments Time Limit: 1000MS   Memory Limit: 65536K       Description Given n segments in the two dim ...

  8. gym 101081 gym F. Auction of Services 最小生成树+倍增LCA

    F. Auction of Services time limit per test 2.0 s memory limit per test 256 MB input standard input o ...

  9. (免费电影)苹果手机合并.ts视频

    代码教程:https://mp.weixin.qq.com/s/6Oo8TOruePUxotC11zp0ag

  10. Angular 学习笔记 (久久没有写 angular 常会忘记的小细节)

    由于经常跑去写后端, 而且一些就几个月...很多 ng 的东西就忘掉了. 写在这里方便复习呗. 1. async pipe 没有 resolve 前返回的值是 null 2 view componen ...