spring的jdbctemplate的crud的基类dao_Java教程-查字典教程网
spring的jdbctemplate的crud的基类dao
spring的jdbctemplate的crud的基类dao
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:importjava.util.List;/****基本接口**@authorxyq*@param**/publicint...

复制代码 代码如下:

import java.util.List;

/***

* 基本接口

*

* @author xyq

* @param <T>

*

*/

public interface BaseDaoInf<T> {

/***

* 查询接口

*

* @return

*/

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

/***

* 添加,更新,删除接口

* @param sql

* @param id

* @param cl

* @return

*/

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是自动映射实体类的

resultList = jt.query(sql, new BeanPropertyRowMapper<T>(cl));

} catch (Exception e) {

e.printStackTrace();

}

return resultList;

}

/***

* 添加,更新,删除的实现,返回1,0,-1

*/

@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;

}

}

复制代码 代码如下:

/**

* 用户操作接口

* @author xyq

*

*/

public interface UserInfoDaoInf {

/***

* 查询是否有用户

* @param user

* @return

*/

public UserInfo findUser(UserInfo user);

/***

* 删除用户

* @param user

* @return

*/

public int deleteUserById(UserInfo user);

/***

* 添加用户

* @param user

* @return

*/

public int addUser(UserInfo user);

/***

* 更新用户

* @param user

* @return

*/

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);

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类