Spring_SSH整合之_架构的历史(四层架构整合JSP+MySQL+JavaBean+Hibernate)_3

来源:互联网 发布:适用于mac的浏览器 编辑:程序博客网 时间:2024/05/16 14:15
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- This mapping demonstrates how to use an "inverse" join to map an association table as an association with one-to-many multiplicity at the level of the object model. --><hibernate-mapping package="com.bjsxt.registration.model"><class name="User" table="user"><id name="id" type="integer" column="id"><generator class="native" /></id><property name="username" type="string" column="username"/><property name="password" type="string" column="password"/></class></hibernate-mapping>

<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory name="foo"><!-- 数据库连接:方言、驱动、连接、用户名、密码 --><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost:3306/spring</property><property name="connection.username">root</property><property name="connection.password">root</property><!-- 显示SQL语句 --><property name="show_sql">true</property><!-- 自动构建表结构 --><!-- <property name="hbm2ddl.auto">update</property> --><!-- 映射配置 --><mapping resource="com/bjsxt/registration/model/User.hbm.xml" /></session-factory></hibernate-configuration>

package com.bjsxt.registration.util;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil {private static SessionFactory sessionFactory;static {sessionFactory = new Configuration().configure().buildSessionFactory();}public static SessionFactory getSessionFactory() {return sessionFactory;}}

package com.bjsxt.registration.service;import org.hibernate.Session;import org.hibernate.Transaction;import com.bjsxt.registration.model.User;import com.bjsxt.registration.util.HibernateUtil;public class UserManager {public boolean exists(User u) {Session session = HibernateUtil.getSessionFactory().openSession();Transaction tx = session.beginTransaction();Long count = (Long) session.createQuery(//"select count(u) from User u where username=:name")//.setParameter("name", u.getUsername())//.uniqueResult();tx.commit();session.close();if (count > 0) {return true;}return false;}public void add(User u) {Session session = HibernateUtil.getSessionFactory().openSession();Transaction tx = session.beginTransaction();session.save(u);tx.commit();session.close();}}

Test
package com.bjsxt.registration.service;import org.junit.Assert;import org.junit.Test;import com.bjsxt.registration.model.User;public class UserManagerTest {private UserManager um = new UserManager();@Testpublic void testExists() {User u = new User();u.setUsername("a");boolean exists = um.exists(u);Assert.assertEquals(true, exists);}@Testpublic void testAdd() {User u = new User();u.setUsername("e");u.setpassword("a");boolean exists = um.exists(u);if (!exists) {um.add(u);u.setUsername(u.getUsername());Assert.assertEquals(true,um.exists(u));} else {Assert.fail("not added");}}}


package com.bjsxt.registration.model;//贫血模型 充血模型public class User {private Integer id;private String username;private String password;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getpassword() {return password;}public void setpassword(String password) {this.password = password;}}package com.bjsxt.registration.service;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import com.bjsxt.registration.model.User;public class UserManager {public boolean exists(User u) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/spring", "root", "root");String sqlQuery = "select count(*) from user where username = ?";PreparedStatement psQuery = conn.prepareStatement(sqlQuery);psQuery.setString(1, u.getUsername());ResultSet rs = psQuery.executeQuery();rs.next();int count = rs.getInt(1);psQuery.close();conn.close();if (count > 0) {return true;}return false;}public void add(User u) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/spring", "root", "root");String sql = "insert into user values (null, ?, ?)";PreparedStatement ps = conn.prepareStatement(sql);ps.setString(1, u.getUsername());ps.setString(2, u.getpassword());ps.executeUpdate();ps.close();conn.close();}}<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>用户注册

用户注册


用户名:
密码:
确认密码:
<%@ page language="java" import="java.util.*, java.sql.*"pageEncoding="GB18030"%><%@ page import="com.bjsxt.registration.model.User"%><%@ page import="com.bjsxt.registration.service.UserManager"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";String username = request.getParameter("username");String password = request.getParameter("password");String password2 = request.getParameter("password2");User u = new User();u.setUsername(username);u.setpassword(password);UserManager um = new UserManager();boolean exits = um.exists(u);if (exits) {response.sendRedirect("registFail.jsp");return;}um.add(u);response.sendRedirect("registSuccess.jsp");%><%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>失败

Fail!

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>成功

Success!

阅读全文
0 0