对于创建Web应用程序,使用Hibernate创建一个Web应用程序——使用Jsp表示逻辑层,使用Bean类表示数据,以及使用Dao类操作数据库。
创建项目
创建的Web项目模拟用户注册,输入账户名、密码和邮箱的页面。
- 表
创建一个表account,用于存储注册信息
CREATE TABLE ACCOUNT(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
pwd VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL);
-
新建项目
创建项目的时候勾选Web以及Hibernate
- 创建bean类
package bean;
public class Account {
private int id;
private String name;
private String pwd;
private String email;
// 省略get和set方法
}
- 创建dao类
public class AccountDao {
public static int save(Account account){
int i=0;
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure("hiberbate.cfg.xml").build();
SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata()
.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
i = (int) session.save(account);
transaction.commit();
session.close();
System.out.println(account.getName() + "注册成功");
return i;
}
}
- 创建实体类映射文件
<hibernate-mapping>
<class name="bean.Account" table="account">
<id name="id">
<generator class="increment"></generator>
</id>
<property name="name"></property>
<property name="pwd"></property>
<property name="email"></property>
</class>
</hibernate-mapping>
- 修改配置文件
<hibernate-configuration>
<session-factory>
<!--数据库连接参数-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/test?serverTimezone=GMT%2B8</property>
<property name="connection.username">root</property>
<property name="connection.password">12345</property>
<!--声明数据库方言-->
<property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>
<!--是否显示HQL-->
<property name="show_sql">true</property>
<!--导入实体类映射文件-->
<mapping resource="account.hbm.xml"/>
</session-factory>
</hibernate-configuration>
- 创建注册过程页面register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="dao.AccountDao" %>
<jsp:useBean id="account" class="bean.Account"/>
<jsp:setProperty name="account" property="*"/>
<%
int i = AccountDao.save(account);
if (i>0){
out.print("注册成功!!!");
}
%>
- 创建主页面index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户注册表单</title>
</head>
<body>
<form action="register.jsp" method="post">
<h2>用户注册表单</h2>
<hr/>
Name:<input type="text" name="name"/><br>
<br/>Password:<input type="password" name="pwd"/><br>
<br/>Email:<input type="email" name="email"/><br>
<br/><input type="submit" value="注册"/>
</form>
</body>
</html>