/*
* Copyright 2010 Research Studios Austria Forschungsgesellschaft mBH
*
* This file is part of easyrec.
*
* easyrec is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* easyrec is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with easyrec. If not, see <http://www.gnu.org/licenses/>.
*/
package org.easyrec.store.dao.impl;
import org.easyrec.store.dao.BasicDAO;
import org.easyrec.utils.spring.store.dao.DaoUtils;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import javax.sql.DataSource;
import java.sql.Types;
/**
* The Class is the Implementation of the Operator DAO
* <p/>
* <p>
* <b>Company: </b> SAT, Research Studios Austria
* </p>
* <p/>
* <p>
* <b>Copyright: </b> (c) 2007
* <p/>
* <b>last modified:</b><br/> $Author: pmarschik $<br/> $Date: 2008-07-17
* 20:00:46 +0200 (Do, 17 Jul 2008) $<br/> $Revision: 17653 $
* </p>
*
* @author <AUTHOR>
*/
public class BasicDAOMysqlImpl extends JdbcDaoSupport implements BasicDAO {
private String dbName;
private String tableName;
private String tableStringId;
private String tableId;
protected static final String DELIMITER = ":::";
@SuppressWarnings({"UnusedDeclaration"})
public BasicDAOMysqlImpl() {
}
public BasicDAOMysqlImpl(DataSource dataSource) {
setDataSource(dataSource);
dbName = DaoUtils.getDatabaseURLAndUserName(dataSource);
logger.debug(dbName);
}
public String getDbName() {
return dbName.substring(dbName.indexOf("/") + 2, dbName.indexOf("(") - 1);
}
public String getDbUserName() {
return dbName.substring(dbName.indexOf("(") + 1, dbName.length() - 1);
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public void setTableId(String tableId) {
this.tableId = tableId;
}
@SuppressWarnings({"UnusedDeclaration"})
public String getTableName() {
return tableName;
}
@SuppressWarnings({"UnusedDeclaration"})
public String getTableId() {
return tableId;
}
@SuppressWarnings({"UnusedDeclaration"})
public String getTableStringId() {
return tableStringId;
}
public void setTableStringId(String tableStringId) {
this.tableStringId = tableStringId;
}
/*
* (non-Javadoc)
*
* @see at.researchstudio.sat.recommender.remote.store.dao.BasicDAO#count()
*/
public int count() {
StringBuilder sql = new StringBuilder().
append(" SELECT Count(1) FROM ").
append(tableName);
try {
return getJdbcTemplate().queryForInt(sql.toString(), null, null);
} catch (Exception e) {
logger.debug(e);
return 0;
}
}
/*
* (non-Javadoc)
*
* @see at.researchstudio.sat.recommender.remote.store.dao.BasicDAO#exists(java.lang.String)
*/
public boolean exists(String stringId) {
StringBuilder sql = new StringBuilder().append(" SELECT Count(1) FROM ").append(tableName).append(" WHERE ")
.append(tableStringId).append(" = ? ");
Object[] args = {stringId};
int[] argTypes = {Types.VARCHAR};
try {
return getJdbcTemplate().queryForInt(sql.toString(), args, argTypes) > 0;
} catch (Exception e) {
logger.debug(e);
return false;
}
}
/*
* (non-Javadoc)
* @see at.researchstudio.sat.recommender.remote.store.dao.BasicDAO#exists(int)
*/
public boolean exists(int id) {
StringBuilder sql = new StringBuilder().append(" SELECT Count(1) FROM ").append(tableName).append(" WHERE ")
.append(tableId).append(" = ? ");
Object[] args = {id};
int[] argTypes = {Types.INTEGER};
try {
return getJdbcTemplate().queryForInt(sql.toString(), args, argTypes) > 0;
} catch (Exception e) {
logger.debug(e);
return false;
}
}
}