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

40 篇文章 0 订阅
11 篇文章 0 订阅
<?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();

	@Test
	public void testExists() {
		User u = new User();
		u.setUsername("a");
		boolean exists = um.exists(u);
		Assert.assertEquals(true, exists);
	}

	@Test
	public 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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值