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); } } }
运行结果: