私は多くの変更を試みましたが、どういうことはしませんでしたが、私のコードで何がうまくいかないのか分かりません。これは春の私の最初のプロジェクトです。私は私のSQLメソッドでnullポインタの例外が与えられています。Springテンプレートで例外を与える
マイJdbcDAO.java
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.datasource.*;
import org.springframework.stereotype.Repository;
/**
* Created by Albedo on 6/6/2017.
*/
@Repository("reviewDAO")
public class JdbcReviewDAO {
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
@Bean
public JdbcTemplate getTemplate(){
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
this.jdbcTemplate = jdbcTemplate;
}
// sql methods go here
}
マイ春-Datasource.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/" />
<property name="username" value="root" />
<property name="password" value="admin" />
</bean>
<bean id="reviewDAO" class="com.JdbcReviewDAO">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
マイapplication.java:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
//ApplicationContext context =
// new ClassPathXmlApplicationContext("Spring-Review.xml");
JdbcReviewDAO reviewDAO = new JdbcReviewDAO();
reviewDAO.grabFirstPost(1);
SpringApplication.run(Application.class, args);
}
}
(私はパッケージ名を削除した - 残りは彼らを保証プロジェクトで適切に定義されています。また、冗長性を削除するSQLメソッドもあります。 )これはコードではなく、インフラの問題(私の無知、まだnoobieを許している)だと思う。誰でもアイデアはありますか?
エラーログ:エラーが発生します
Exception in thread "main" java.lang.NullPointerException
at JdbcDAO.grabFirstPost(JdbcDAO.java:63)
at Application.main(Application.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Process finished with exit code 1
方法* \:変数jdbcTemplate
はnull
が含まれているよう
public String grabFirstPost(int id) {
String sql = "SELECT * FROM post WHERE postid ='" + id + "'";
String postContent = (String)jdbcTemplate.queryForObject(sql, new Object[] {id}, String.class);
return postContent;
}
が、私はそれがどのように役立つかわからないとはいえ、助け –
追加を取得するには、エラー・ログを表示してください。 –
JdbcDAO.javaの63行目でエラーが発生します。その行には何がありますか? – meriton