Iam は休止状態が初めてです。現在、休止状態を使用してユーザーの詳細をデータベースに保存しようとしています。そのために、3 つの .java ファイルを作成しました。
1.最初は HiberUtil.java です。コードは次のとおりです パッケージ hiberpack;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HiberUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new AnnotationConfiguration().configure()
.buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
2.次はDbMap.javaです
package hiberpack;
import javax.persistence.Column;
import javax.persistence.Entity;
//import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "user_details")
public class DbMap {
@Id
//@GeneratedValue
@Column(name = "id")
private long id_auto;
@Column(name = "name", nullable = false)
private String username;
@Column(name = "Smobile", nullable=false)
private String mobnum;
public long getId_auto() {
return id_auto;
}
public void setId_auto(long id_auto) {
this.id_auto = id_auto;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMobnum() {
return mobnum;
}
public void setMobnum(String mobnum) {
this.mobnum = mobnum;
}
}
3.以下はUserSaveサーブレットです
package servlets;
import hiberpack.DbMap;
import hiberrepo.Repository;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserSave extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Repository rep = new Repository();
String name = request.getParameter("uname");
String mp = request.getParameter("mob");
DbMap st = new hiberpack.DbMap();
st.setUsername(name);
st.setMobnum(mp);
rep.insertStock(st);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
}
4.以下はRepository.javaです
package hiberrepo;
import hiberpack.HiberUtil;
import hiberpack.DbMap;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class Repository {
SessionFactory sf = HiberUtil.getSessionFactory();
Session sfSession = null;
public void insertStock(DbMap storeObj)
{
sfSession.save(storeObj);
}
}
休止状態を使用してデータベースにデータを入力しようとすると、Null ポインター例外が表示されます。エラー メッセージは次のとおりです。
java.lang.NullPointerException
hiberrepo.Repository.insertStock(Repository.java:15)
servlets.UserSave.doPost(UserSave.java:25)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)