java的反射机制前面已经讲过,这里不再赘述,这篇文章将会利用反射,来实现一个通用的dao层。
1 一般情况下的dao层
我们先来看一下,通常,我们是如何写dao的。
public class Person {
public int pid;
public String pname;
public double psalary;
public Date pbirthday;
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public double getPsalary() {
return psalary;
}
public void setPsalary(double psalary) {
this.psalary = psalary;
}
public Date getPbirthday() {
return pbirthday;
}
public void setPbirthday(Date pbirthday) {
this.pbirthday = pbirthday;
}
public Person() {
super();
}
}
这是一个正常的javabean,这里的变量写成public不是我 不专业。。。而是我比较懒,方便后面写代码。。。
CREATE DATABASE reflect;
USE reflect;
CREATE TABLE person(
pid INT PRIMARY KEY,
pname VARCHAR(255) NOT NULL,
psalary FLOAT,
pbirthday DATE
);
INSERT INTO person VALUES(
1,'jack','1000','1995-11-27'
);
CREATE TABLE animal(
aid INT PRIMARY KEY,
aname VARCHAR(255) NOT NULL
);
INSERT INTO animal VALUES(
1,'tom'
);
数据库脚本文件,这里采用mysql数据库
package com.mystery.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util