Java学习笔记40(sql:将数据库内数据存入对象中)
新建一个数据表:
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:将数据库内数据存入对象中)的更多相关文章
- Java学习笔记:基本输入、输出数据操作实例分析
Java学习笔记:基本输入.输出数据操作.分享给大家供大家参考,具体如下: 相关内容: 输出数据: print println printf 输入数据: Scanner 输出数据: JAVA中在屏幕中 ...
- 【初学Java学习笔记】SQL语句调优
1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认 ...
- Java学习笔记之[ 利用扫描仪Scanner进行数据输入 ]
/*********数据的输入********//**利用扫描仪Scanner进行数据输入 怎么使用扫描仪Scanner *1.放在类声明之前,引入扫描仪 import java.util.Scann ...
- Java学习笔记40(缓冲流)
缓冲流: 在读写文件的各种流中,最令人烦恼的就是效率问题, 而缓冲流的目的就是提高读写效率 字节输出缓冲流: package demo; import java.io.BufferedOutputSt ...
- 【转】JAVA学习笔记----PL/SQL最差实践
1. 超长的PL/SQL代码 影响:可维护性,性能 症状: 在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包.为什么是最差: 太长的PL/SQL代码不利于阅读,第三方工 ...
- Spring学习笔记3——使用注解的方式完成注入对象中的效果
第一步:修改applicationContext.xml 添加<context:annotation-config/>表示告诉Spring要用注解的方式进行配置 <?xml vers ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 20145230《java学习笔记》第九周学习总结
20145230 <Java程序设计>第9周学习总结 教材学习内容 JDBC JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作, ...
随机推荐
- poj2142 The Balance
poj2142 The Balance exgcd 应分为2种情况分类讨论 显然我们可以列出方程 ax-by=±d 当方程右侧为-d时,可得 by-ax=d 于是我们就得到了2个方程: ax-by=d ...
- Docker run命令参数整理
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -d, --detach=false 指定容器运行于前台还是后台,默认为false -i, - ...
- Vue监听属性的变化
监听属性的变化watch: { counter: function (nval, oval) { alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!') }}
- Lintcode40-Implement Queue by Two Stacks-Medium
40. Implement Queue by Two Stacks As the title described, you should only use two stacks to implemen ...
- Linux——命令
1.pod2text # 功能输出处理对象(脚本)中的的=head1 ...=head1 ......=cut框架中的信息 2.date # 输出时间 eg: Sat Ju ...
- js打开新页面的方式:
1.超链接<a href="http://www.jb51.net" title="脚本之家">Welcome</a>等效于js代码wi ...
- C# --- ??(空接合操作符)的一个案例
Nullable<Int32> x = null; Nullable<Int32> y = null; Nullable<Int32> z = null; Int3 ...
- 20175317 《Java程序设计》第二周学习总结
20175317 <Java程序设计>第二周学习总结 教材学习内容总结 第二周我学习了教材三四章的内容,了解了Java与C语言的相似与不同之处. 其中第二章学到了标识符与关键字.基本数据类 ...
- 通过RequestContextHolder直接获取HttpServletRequest对象
问题 朋友遇到一个问题:他想在Service方法中使用HttpServletRequest的API,但是又不想把HttpServletRequest对象当作这个Service方法的参数传过来,原因是这 ...
- 《Practical Vim》第八章:利用动作命令在文档中移动
面向单词的移动 定义: Vim 提供了面向单词的动作命令,用于将光标正向/反向移动一个单词; 功能 命令 正向移动到下一单词开头 w 反向移动到上一单词的开头 b 正向移动到下一单词(当前单词)的结尾 ...