package com.springMvc.dao.manager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.stereotype.Repository;
import com.springMvc.model.TypeInfo;
@Repository
public class TypeManager {
/*自动注入jdbcTemplate的bean*/
@Autowired
private JdbcTemplate jdbcTemplate;
//logger
private final static Logger logger = Logger.getLogger(TypeManager.class);
/**
* 提供一个查询所有最底层类的方法,供给前台插入数据时选择
*/
public List
selectAllTypes(){
logger.info("----------------查询可用类型,dao层--!");
/*这里我设想的是id不是别人的父类id肯定就是最子类了,sql不太擅长,有更好的方法欢迎提出*/
String sql = "select type_id,type_name from account_type where type_id not in"
+ "(select distinct type_parent from account_type)";
final List
resultList = new ArrayList
(); jdbcTemplate.query(sql, new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { TypeInfo ty = new TypeInfo(); ty.setType_id(rs.getInt("type_id")); ty.setType_name(rs.getString("type_name")); resultList.add(ty); } }); return resultList; } }
一个account manager一个type manager,分别提供插入方法,和提供插入时选择账目类型列表。基本先够用了吧,这里返回类型列表用到了一个类型的model,如下
package com.springMvc.model;
public class TypeInfo {
private Integer type_id;//id
private String type_name;//描述
public Integer getType_id() {
return type_id;
}
public void setType_id(Integer type_id) {
this.type_id = type_id;
}
public String getType_name() {
return type_name;
}
public void setType_name(String type_name) {
this.type_name = type_name;
}
}
然后写service吧
package com.springMvc.service;
import com.springMvc.dao.entity.Account;
public interface AccountService {
/**
* 插入账目
*/
public void insertAccout(Date acc_time,Integer acc_jine,Integer acc_shouzhi,Integer acc_type,Integer acc_beizhu);
}
package com.springMvc.service;
import java.util.List;
import com.springMvc.model.TypeInfo;
public interface TypeService {
/**
* 调取可用类型
*/
public List
selectAllTypes();
}
package com.springMvc.service.Impl;
import java.sql.Date;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.springMvc.dao.entity.Account;
import com.springMvc.dao.manager.AccountManager;
import com.springMvc.service.AccountService;
@Service //标注为服务层的一个service
public class AccountServiceImpl implements AccountService{
//logger
private final static Logger logger = Logger.getLogger(AccountServiceImpl.class);
@Autowired//自动装配dao bean
private AccountManager accountManager;
@Override
public void insertAccout(Date acc_time,Integer acc_jine,Integer acc_shouzhi,Integer acc_type,Integer acc_beizhu) {
logger.info("----------------插入账目进入Se