封装到工具类
public T getObjectByParams(RowMapper<T> row, String strSql, Object... params) {
Connection connection = this.getConnection();
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(strSql);
if (null != params) {
for (int i = 0; i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
}
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
return row.mapper(resultSet);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(resultSet, preparedStatement, connection);
}
return null;
}
public List<T> getObjectListByParams(RowMapper<T> row, String strSql, Object... params) {
Connection connection = this.getConnection();
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
List<T> list = new ArrayList<>();
try {
preparedStatement = connection.prepareStatement(strSql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
preparedStatement.setObject(i + 1, params[i]);
}
}
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
T mapper = row.mapper(resultSet);
list.add(mapper);
}
return list;
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(resultSet, preparedStatement, connection);
}
return null;
}
}
实现类分别实现接口;实现类实现接口并继承数据库工具类
@Override
public List<Dog> getAllDog() {
String sqlStr = "select d.id,d.name,d.health,d.love,d.strain,d.lytm from dog d";
List<Dog> dog = super.getObjectListByParams(row, sqlStr);
return dog;
}
@Override
public Dog getDogById(Integer id) {
String sqlStr = "select d.id,d.name,d.health,d.love,d.strain,d.lytm,\n" +
" m.pid,m.name pname, m.age,m.gender,m.yearnum,m.did\n" +
" from dog d\n" +
" left join master m on d.id= m.did\n" +
" where d.id=?";
Dog dog = super.getObjectByParams(row, sqlStr, id);
return dog;
}
RowMapper<Dog> row = new RowMapper<Dog>() {
@Override
public Dog mapper(ResultSet resultSet) {
Dog dog = new Dog();
try {
dog.setId(resultSet.getInt("id"));
dog.setName(resultSet.getString("name"));
dog.setHealth(resultSet.getInt("health"));
dog.setLove(resultSet.getInt("love"));
dog.setStrain(resultSet.getString("strain"));
dog.setLytm(resultSet.getDate("lytm"));
} catch (SQLException e) {
e.printStackTrace();
}
return dog;
}
};
测试类进行测试
@Test
public void testGetAllDog2() {
DogDao dogDao = new DogDaoImpl2();
List<Dog> allDog = dogDao.getAllDog();
for (Dog dog :
allDog) {
System.out.println(dog.toString());
}
}
@Test
public void testGetDogById2() {
DogDao dogDao = new DogDaoImpl2();
Dog dog = dogDao.getDogById(7);
System.out.println(dog.toString());
}