/* * Copyright [duowan.com] * Web Site: http://www.duowan.com * Since 2005 - 2013 */ package com.fpcms.dao.impl; import static com.github.rapid.common.util.ObjectUtil.isNotEmpty; import java.util.List; import org.springframework.dao.support.DataAccessUtils; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource; import com.github.rapid.common.util.page.Page; import com.fpcms.common.dao.BaseSpringJdbcDao; import com.fpcms.dao.BlogExternalDao; import com.fpcms.model.BlogExternal; import com.fpcms.query.BlogExternalQuery; /** * tableName: blog_external * [BlogExternal] 的Dao操作 * * @author badqiu email:badqiu(a)gmail.com * @version 1.0 * @since 1.0 */ public class BlogExternalDaoImpl extends BaseSpringJdbcDao implements BlogExternalDao{ private RowMapper<BlogExternal> entityRowMapper = new BeanPropertyRowMapper<BlogExternal>(getEntityClass()); static final private String COLUMNS = "blog_url,blog_rpc_url,blog_name,username,password,tags,categories,blog_rpc_api,blog_desc,blog_post_count,blog_rpc_api_class,enabled"; static final private String SELECT_FROM = "select " + COLUMNS + " from blog_external"; @Override public Class<BlogExternal> getEntityClass() { return BlogExternal.class; } @Override public String getIdentifierPropertyName() { return "blogUrl"; } public RowMapper<BlogExternal> getEntityRowMapper() { return entityRowMapper; } public void insert(BlogExternal entity) { String sql = "insert into blog_external " + " (blog_url,blog_rpc_url,blog_name,username,password,tags,categories,blog_rpc_api,blog_desc,blog_post_count,blog_rpc_api_class,enabled) " + " values " + " (:blogUrl,:blogRpcUrl,:blogName,:username,:password,:tags,:categories,:blogRpcApi,:blogDesc,:blogPostCount,:blogRpcApiClass,:enabled)"; // insertWithGeneratedKey(entity,sql); //for sqlserver:identity and mysql:auto_increment insertWithAssigned(entity,sql); //手工分配 } public int update(BlogExternal entity) { String sql = "update blog_external set " + " blog_rpc_url=:blogRpcUrl,blog_name=:blogName,tags=:tags,categories=:categories,blog_rpc_api=:blogRpcApi,blog_desc=:blogDesc,blog_post_count=:blogPostCount,blog_rpc_api_class=:blogRpcApiClass,enabled=:enabled " + " where blog_url = :blogUrl and username = :username "; return getNamedParameterJdbcTemplate().update(sql, new BeanPropertySqlParameterSource(entity)); } public int deleteById(String blogUrl, String username) { String sql = "delete from blog_external where blog_url = ? and username = ? "; return getSimpleJdbcTemplate().update(sql, blogUrl,username); } public BlogExternal getById(String blogUrl, String username) { String sql = SELECT_FROM + " where blog_url = ? and username = ? "; return (BlogExternal)DataAccessUtils.singleResult(getSimpleJdbcTemplate().query(sql, getEntityRowMapper(),blogUrl,username)); } public Page<BlogExternal> findPage(BlogExternalQuery query) { StringBuilder sql = new StringBuilder("select "+ COLUMNS + " from blog_external where 1=1 "); if(isNotEmpty(query.getBlogUrl())) { sql.append(" and blog_url = :blogUrl "); } if(isNotEmpty(query.getBlogRpcUrl())) { sql.append(" and blog_rpc_url = :blogRpcUrl "); } if(isNotEmpty(query.getBlogName())) { sql.append(" and blog_name = :blogName "); } if(isNotEmpty(query.getUsername())) { sql.append(" and username = :username "); } if(isNotEmpty(query.getPassword())) { sql.append(" and password = :password "); } if(isNotEmpty(query.getTags())) { sql.append(" and tags = :tags "); } if(isNotEmpty(query.getCategories())) { sql.append(" and categories = :categories "); } if(isNotEmpty(query.getBlogRpcApi())) { sql.append(" and blog_rpc_api = :blogRpcApi "); } if(isNotEmpty(query.getBlogDesc())) { sql.append(" and blog_desc = :blogDesc "); } //sql.append(" order by :sortColumns "); return pageQuery(sql.toString(),query,getEntityRowMapper()); } @Override public List<BlogExternal> findAll() { return getSimpleJdbcTemplate().query(SELECT_FROM, getEntityRowMapper()); } }