Google 클라우드 SQL 데이터베이스에 백엔드 엔드 포인트 코드를 연결하려고합니다. 필자는 MySQL 워크 벤치를 사용하여 데이터베이스와 테이블을 성공적으로 만들고 만들었습니다. 사용자 테이블에 새 사용자를 삽입하려고하면 쿼리를 실행할 때 java.lang.NullPointerException이 발생합니다. 아래의 코드를 참조하십시오 :Google App Engine 끝점을 사용하여 Cloud SQL에 연결
@ApiMethod(name="registerUser")
public User addUser(@Named("name") String name, @Named("email") String email, @Named("rotation") double rotation,
@Named("p1email") String p1email, @Named("p2email") String p2email, @Named("password") String password) throws NotFoundException {
//Check if already exists
Connection conn = dbConnection.getConnection();
User u = null;
try {
String query = "SELECT * FROM users WHERE email = '"+email+"'";
java.sql.ResultSet rs = conn.createStatement().executeQuery(query);
if(rs != null){
throw new NotFoundException("User email is already used");
}else{
java.sql.PreparedStatement statement = conn.prepareStatement("INSERT INTO users (name,email,p1email,p2email,password,rotation) VALUES (?, ?, ?, ?, ?, ?)");
statement.setString(1, name);
statement.setString(2, email);
statement.setString(3, p1email);
statement.setString(4, p2email);
statement.setString(5, password);
statement.setDouble(6, rotation);
statement.execute();
}
String query2 = "SELECT * FROM users WHERE email = '"+email+"'";
java.sql.ResultSet rs2 = conn.createStatement().executeQuery(query2);
if(rs2 != null){
while(rs2.next()){
u = new User(rs2.getInt("id"), name, email, p1email, p2email, password, rotation);
}
}
}catch (SQLException e){
throw new NotFoundException(e);
}
return u;
}
코드 데이터베이스에 연결하는 것은 :
java.sql.ResultSet rs = conn.createStatement().executeQuery(query);
:
public java.sql.Connection getConnection(){
try{
Connection conn = DriverManager.getConnection(
"jdbc:google:mysql://your-project-id:your-instance-name/database",
"user", "password");
}catch(Exception e){
conn = null;
}
return conn;
}
내가 첫 번째 코드에서이 문장에서 java.lang.NullPointerException이를 얻을 수
GAE 또는 devserver를 사용하여 로컬 컴퓨터에서 실행될 때 이런 현상이 발생합니까? – koma
로컬 및 GAE 모두에서 발생합니다. – Hoffern