2016-12-22 1 views
0

Я пытался подключиться к базе данных с помощью hibernate и JSP, а ниже - мой код.Подключение к базе данных с использованием Hibertane и JSP

Я получил Error message

Я хочу подключиться к гибернации с помощью JSP только в любом случае он будет преобразован в сервлет внутри.

Я изучаю это самостоятельно, поэтому любезно дайте мне знать, если есть какая-то глупая ошибка.

index.html 

<html> 
<head> 
    <title>TODO supply a title</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
</head> 
<body> 

    <form action="action.jsp" method="post"> 
    Name <input type="text" name = "name"> <br> 
    Password <input type="password" name="password"> <br> 
    <input type="submit" value="submit"> 
    </form> 
</body> 
</html> 


action.jsp 

<%@page import="org.hibernate.Transaction"%> 
<%@page import="p1.User"%> 
<%@page import="org.hibernate.Session"%> 
<%@page import="org.hibernate.SessionFactory"%> 
<%@page import="org.hibernate.cfg.Configuration"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 

    <% 
     Configuration cfg = new Configuration(); 
     cfg.configure("hibernate.cfg.xml"); 
//  out.println("Configuration object created"); 
     SessionFactory sf = cfg.buildSessionFactory(); 
     Session ses = sf.openSession(); 
     Transaction t = ses.beginTransaction(); 

     String n = request.getParameter("name"); 
     String p = request.getParameter("password"); 

     // out.println("Welcome " + n); 
     User u1 = new User(n, p); 
     ses.save(); 
     t.commit(); 
     ses.close(); 
     out.println("Data inserted successfully"); 

    %> 
</body> 
</html> 

hibernate.cfg.xml 

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate   Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate- configuration-3.0.dtd"> 
    <hibernate-configuration> 
    <session-factory> 
    <property         name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/form?zeroDateTimeBehavior=convertToNull</property> 
    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.connection.password">tiger</property> 
    <mapping resource="p1/hibernate.hbm.xml"/> 
    </session-factory> 
</hibernate-configuration> 


hibernate.hbm.xml 

    <?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
    <hibernate-mapping> 
    <class name="p1.User" table="user"> 
     <property name="name" column="uname"></property> 
     <property name="password" column="password"></property> 
    </class> 
</hibernate-mapping> 

ответ

0

Существует ошибка в hibernate.hbm.xml

http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd 

Это DTD может быть использован только для hibernate.cfg.xml. Обратитесь к этому примеру: https://www.tutorialspoint.com/hibernate/hibernate_mapping_files.htm

И, пожалуйста, не используйте DTD для очень старых версий спящего режима от http://hibernate.sourceforge.net.

И вы не сохраните User.

+0

Я сохранил объект сеанса сейчас, i.e .; ses.save(), и я все равно получаю то же сообщение об ошибке. – krrish

+0

@krrish Проблема заключается не в сохранении, а в недопустимом DTD. И 'ses.save()' выглядит как фигня. Считаете ли вы, что 'Session' - это что-то вроде телепата, чтобы знать все о' User'? –

+0

Я изучаю спящий режим в первый раз и сам по себе, поэтому могут быть ошибки. Пожалуйста, дайте мне знать, если мне нужно изменить DTD в картографировании и файле cfg или только один и на что он должен быть изменен. Также посоветуйте, как следует сохранять данные в базу данных в базу данных, если ses.save не является хорошей идеей. – krrish

Смежные вопросы