struts+hibernate登录系统

hibernate框架内部采用xml、java reflection等技术来实现对象/关系映射功能。
它内部封装了jdbc访问数据库的操作。
hibernate的核心类:

struts+hibernate登录系统
SessionFactory类是对应单一数据库的、已编译映射文件的、线程安全的、不可变的高速缓存。是产生Session的工厂类。
Session接口负责保存,更新,删除,加载和查询对象,其中封装了一个JDBC连接。
Transaction对象是由Session产生的。生命周期比Session短,一个Session周期内可以有多个Transaction对象。Connection Provider主要生产与数据库建立了连接的JDBC对象,同时作为数据库连接的缓存池。
工作流程:

struts+hibernate登录系统
本实例是在struts实现的登录系统基础上增加hibernate功能
项目结构图:

struts+hibernate登录系统
修改的有业务逻辑类:
package com.qdu.struts.BO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

import org.hibernate.Transaction;

import com.qdu.hibernate.User;
import com.qdu.hibernate.UserDAO;

public class LoginBO {

	public boolean validate(String username, String password) {
//		Connection conn = null;
//		try {
//			Class.forName("org.gjt.mm.mysql.Driver");
//			String url = "jdbc:mysql://localhost:3306/junit";
//			conn = DriverManager.getConnection(url,"root","root");
//			Statement stmt = conn.createStatement();
//			String sql = "select * from usertable where name='"+username+"' and password = '"+password+"'";
//			
//			ResultSet rs = stmt.executeQuery(sql);
//			if(rs.next()){return true;}
//			else return false;
//			
//			
//		} catch (ClassNotFoundException e) {
//			e.printStackTrace();
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
//		
//		return false;                     
		
//		--------使用hibernate时---------------
		
//		按照JAVA EE规范的规定,一个标准的
		
		
		
		
		
		
		
		UserDAO dao = new UserDAO();
		
		Transaction tx = dao.getSession().beginTransaction();
		User user = new User();
		user.setName(username);
		user.setPassword(password);
		
		List list = dao.findByExample(user);
		tx.commit();
		
		if(list.size()>0) return true;
		else return false;
	}

}

hibernate配置文件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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
	<property name="connection.username">root</property>
	<property name="connection.url">
		jdbc:mysql://localhost:3306/junit
	</property>
	<property name="dialect">
		org.hibernate.dialect.MySQLDialect
	</property>
	<property name="myeclipse.connection.profile">
		org.gjt.mm.mysql.Driver
	</property>
	<property name="connection.password">root</property>
	<property name="connection.driver_class">
		org.gjt.mm.mysql.Driver
	</property>
	<property name="show_sql">true</property>
	<mapping resource="com/qdu/hibernate/User.hbm.xml" />

</session-factory>

</hibernate-configuration>


对象映射文件User.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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.qdu.hibernate.User" table="usertable" catalog="junit">
        <id name="id" type="java.lang.Integer">
            <column name="Id" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="256" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" />
        </property>
    </class>
</hibernate-mapping>

程序源码见附件:

你可能感兴趣的:(java,sql,Hibernate,mysql,struts)