Spring's jdbctemplate's crud base class dao

  • 2020-04-01 02:53:25
  • OfStack


import java.util.List;

public interface BaseDaoInf<T> {
 
 public List<T> find(String sql, Object[] parameters, Class<T> cl);

 
 public int addOrUpdateOrDelete(String sql,Object[] parameters, Class<T> cl);
}


import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementSetter;
import com.xyq.all.dao.inf.BaseDaoInf;
public class BaseDaoImpl<T> implements BaseDaoInf<T> {
 
 private static final long serialVersionUID = 1L;
 
 @Resource(name = "jdbcTemplate")
 private JdbcTemplate jt;
 
 @Override
 public List<T> find(String sql, Object[] parameters, Class<T> cl) {
  List<T> resultList = null;
  try {
   if (parameters != null && parameters.length > 0)
    resultList = jt.query(sql, parameters,
      new BeanPropertyRowMapper<T>(cl));
   else
    //BeanPropertyRowMapper automatically maps entity classes
    resultList = jt.query(sql, new BeanPropertyRowMapper<T>(cl));
  } catch (Exception e) {
   e.printStackTrace();
  }
  return resultList;
 }
 
 @Override
 public int addOrUpdateOrDelete(String sql, final Object[] parameters,
   Class<T> cl) {
  int num = 0;
  try {
   if (parameters == null || parameters.length == 0)
    num = jt.update(sql);
   else
    num = jt.update(sql, new PreparedStatementSetter() {
     @Override
     public void setValues(PreparedStatement ps)
       throws SQLException {
      for (int i = 0; i < parameters.length; i++)
       ps.setObject(i + 1, parameters[i]);
     }
    });
  } catch (Exception e) {
   e.printStackTrace();
   num = -1;
  }
  return num;
 }
}



public interface UserInfoDaoInf {

 
 public UserInfo findUser(UserInfo user);

 
 public int deleteUserById(UserInfo user);

 
 public int addUser(UserInfo user);

 
 public int updateUser(UserInfo user);
}


import java.util.List;
import org.springframework.stereotype.Repository;
import com.xyq.all.dao.inf.UserInfoDaoInf;
import com.xyq.all.entity.UserInfo;
@Repository("userDao")
public class UserInfoDaoImpl extends BaseDaoImpl<UserInfo> implements
  UserInfoDaoInf {

 
 @Override
 public UserInfo findUser(UserInfo user) {
  List<UserInfo> list = null;
  String sql = "select * from userInfo where username=? and password =? ";
  list = super.find(sql,
    new String[] { user.getUserName(), user.getPassword() },
    UserInfo.class);
  if (list != null && list.size() > 0)
   return list.get(0);
  return null;
 }
 
 @Override
 public int deleteUserById(UserInfo user) {
  String sql = "delete from userInfo where userid = ?";
  return super.addOrUpdateOrDelete(sql, new Integer[] { user.getUserId() },
    UserInfo.class);
 }
 
 @Override
 public int addUser(UserInfo user) {
  String sql = "insert into userInfo values(null,?,?,?)";
  return super.addOrUpdateOrDelete(
    sql,
    new Object[] { user.getUserName(), user.getPassword(),
      user.getSecondPassword() }, UserInfo.class);
 }
 
 @Override
 public int updateUser(UserInfo user) {
  String sql = "update userInfo set userName=?,password = ?,secondPassword = ? where userid=?";
  return super.addOrUpdateOrDelete(
    sql,
    new Object[] { user.getUserName(), user.getPassword(),
      user.getSecondPassword(), user.getUserId() },
    UserInfo.class);
 }


Related articles: