当前位置: 代码迷 >> Java Web开发 >> dao层出现空指针错误-菜鸟
  详细解决方案

dao层出现空指针错误-菜鸟

热度:619   发布时间:2016-04-17 10:24:14.0
dao层出现空指针异常--初学者求助
我用spring jdbc模板进行增删改查,测试时总是出现空指针异常,查询总是jdbcTemplate.update/query()语句出错。请大家帮帮忙

原文件如下:

【StudentDaoImp.java】
import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.bbs.dao.StudentDao;
import com.bbs.model.Student;

@Repository
@SuppressWarnings("unchecked")
public class StudentDaoImp implements StudentDao {
protected JdbcTemplate jdbcTemplate;
protected void setDataSource(DataSource dataSource) {
jdbcTemplate = new JdbcTemplate(dataSource);
}

@Transactional(rollbackFor=Exception.class,propagation=Propagation.REQUIRED)
public boolean deleteStudents(int id) {
String sql = "delete from students where id =" + id;
int rows = jdbcTemplate.update(sql);
if(rows == 1)
return true;
else  
return false;
}

public List<Student> getAllStudents() {
String sql = "select * from students";
List<Student> studentsList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Student>(Student.class));
return studentsList;
}

public Student getStudentsById(int id) {
String sql = "select * from students where id =" + id;
List<Student> students = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Student>(Student.class));
return students.get(0);
}

public boolean updateStudents(Student student) {
String sql = "update students set name=?, sex=?, age=?, phone=? where id=? ";
int rows = jdbcTemplate.update(sql, student.getName(), student.getSex(), student.getAge(),
student.getPhone(), student.getId());
if(rows == 1)
return true;
else  
return false;
}

public boolean addStudents(Student student) {
String sql = "insert into students(name, sex, age, phone) values(?, ?, ?, ?)";
int rows = jdbcTemplate.update(sql, student.getName(), student.getSex(), student.getAge(), student.getPhone());
if(rows == 1)
return true;
else  
return false;
}

}


【bean.xml】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-3.0.xsd
  http://www.springframework.org/schema/aop
  http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  http://www.springframework.org/schema/tx  
  http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
   
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="jdbc:mysql://localhost:3306//mysql"></property>
  <property name="username" value="root"></property>
  <property name="password" value="123456"></property>  
  相关解决方案