(5)面向物件編寫JDBC
阿新 • • 發佈:2018-11-27
我們會用到前面的JDBCTools (連線,關閉資料庫的方法)
1.在mysql裡面建立一個名為student的資料庫 裡面有id(int) idcade(String) name(String)
2.在程式設計軟體中我們建立與之相對應的student類 : 資料封裝 , 構造 , toString
public class Student {
// 與資料庫裡面的東西相對應
//id的內容
private int id;
//身份證資訊
private String idcade;
//名字
private String name;
public int getId () {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getIdcade() {
return idcade;
}
public void setIdcade(String idcade) {
this.idcade = idcade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//有引數構造器 點選 Source Generrate Constructor using Fields
public Student(int id, String idcade, String name) {
super();
this.id = id;
this.idcade = idcade;
this.name = name;
}
//無參構造器
public Student() {}
@Override
public String toString() {
return "Student [id=" + id + ", idcade=" + idcade + ", name=" + name + "]";
}
}
<獲取單個物件>
//直接傳入sql語句 然後返回Student物件
private Student getStudent(String sql) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Student stu = null;
//後面的程式碼都是固定模式
conn = JDBCTools.getConnection();
String sql = "select * from student where id="+id;
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next())
{
stu = new Student(rs.getInt(1),rs.getString(2),
rs.getString(3));
}
System.out.println(stu.toString());
}catch (SQLException e)
{
e.printStackTrace();
}
finally {
JDBCTools.release(rs, ps, conn);
}
return stu;
}
<獲取所有物件> 用List接收
//獲得所有客戶資料
public List<Student> getStudents() throws Exception
{
//建立List集合
List<Student> students= new ArrayList<Student>();
Student stu = null;
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
connection = JDBCTools.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
if(resultSet.next())
{
stu = new Student(resultSet.getInt(1),resultSet.getString(2),
resultSet.getString(3));
//把Student這個物件 放入List集合中
students.add(stu);
}
} catch (Exception e) {
}finally
{
JDBCTools.release(resultSet, statement, connection);
}
return students;
}
//自己隨機定義一個方法 我就不CP了
//我們遍歷資料庫所有student的資訊 程式碼部分如下
主類類名 xx = new 主類類名();
List<Student> ss = xx.getStudents();
for(Student s: ss)
{
System.out.println(s.toString());
}