Package org.springmodules.samples.lucene.dao.category

Source Code of org.springmodules.samples.lucene.dao.category.CategoryDaoImpl$CategoryMappingQuery

/*
* Copyright 2002-2007 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.springmodules.samples.lucene.dao.category;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.object.MappingSqlQuery;
import org.springframework.jdbc.object.SqlFunction;
import org.springmodules.samples.lucene.bean.indexing.DocumentCategory;

/**
* @author Thierry Templier
*/
public class CategoryDaoImpl extends JdbcDaoSupport implements CategoryDao {

  private class CategoriesMappingQuery extends MappingSqlQuery {

    public CategoriesMappingQuery(DataSource ds) {
      super(ds, "SELECT CATEGORY_ID,CATEGORY_NAME FROM CATEGORY");
      compile();
    }

    public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {
      DocumentCategory category = new DocumentCategory(rs.getInt("CATEGORY_ID"),
                          rs.getString("CATEGORY_NAME"));
      return category;
    }
  }

  private class CategoryMappingQuery extends MappingSqlQuery {

    public CategoryMappingQuery(DataSource ds) {
      super(ds, "SELECT CATEGORY_ID,CATEGORY_NAME FROM CATEGORY WHERE CATEGORY_ID=?");
      super.declareParameter(new SqlParameter("id", Types.INTEGER));
      compile();
    }

    public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {
      DocumentCategory category = new DocumentCategory(rs.getInt("CATEGORY_ID"),
                          rs.getString("CATEGORY_NAME"));
      return category;
    }
  }

  public List getCategories() {
    CategoriesMappingQuery query = new CategoriesMappingQuery(getDataSource());
    return query.execute();
  }

  public DocumentCategory getCategory(int id) {
    CategoryMappingQuery query = new CategoryMappingQuery(getDataSource());
    List categories = query.execute(new Object[] {new Integer(id)});
    if( categories.size()==1 ) {
      return (DocumentCategory)categories.get(0);
    } else {
      return null;
    }
  }

  public void addCategory(DocumentCategory category) {
    SqlFunction sqlFunction = new SqlFunction(getDataSource(),
                  "select category_id from category");
    sqlFunction.compile();
    int categoryId = sqlFunction.run()+1;
    category.setId(categoryId);

    getJdbcTemplate().update(
      "insert into category (category_id,category_name) values(?,?)",
      new Object[] {new Integer(category.getId()), category.getName()},
      new int[] { Types.INTEGER, Types.VARCHAR });
  }

  public void updateCategory(DocumentCategory category) {
    getJdbcTemplate().update(
      "update category set category_id=?,category_name=? where category_id=?",
      new Object[] {new Integer(category.getId()), category.getName(),
              new Integer(category.getId())},
      new int[] {Types.INTEGER, Types.VARCHAR,Types.INTEGER });
  }

  public void deleteCategory(DocumentCategory category) {
    getJdbcTemplate().update(
      "delete from category where category_id=?",
      new Object[] { new Integer(category.getId()) },
      new int[] { Types.INTEGER });
  }
}
TOP

Related Classes of org.springmodules.samples.lucene.dao.category.CategoryDaoImpl$CategoryMappingQuery

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.