Spring简单整合hibernate实现登录例子 2022-05-19 22:12 61阅读 0赞 数据库loginusers表 ![70][] 1、新建javaWeb Porject项目spring\_hibernate,添加com.dao包(放置数据库操作类)、com.pojo包(放置hibernate生成的POJO类) 2、右击项目添加spring开发功能,注意这里需把spring Persistence类库勾选 ![70 1][] ![70 2][] 3、接下来是添加hibernate组件,与单独部署时不同的是这里不生成hibernate.cfg.xml文件,而是将数据库配置当成bean, 分配id值,统一交由spring进行配置管理 ![70 3][] 4、配置映射数据库表生成POJO类,com.pojo包如下 ![70 4][] package com.pojo; /** * AbstractLoginusers entity provides the base persistence definition of the Loginusers entity. @author MyEclipse Persistence Tools */ public abstract class AbstractLoginusers implements java.io.Serializable { // Fields private Integer id; private String userName; private String password; // Constructors /** default constructor */ public AbstractLoginusers() { } /** minimal constructor */ public AbstractLoginusers(Integer id) { this.id = id; } /** full constructor */ public AbstractLoginusers(Integer id, String userName, String password) { this.id = id; this.userName = userName; this.password = password; } // Property accessors public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return this.userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } } package com.pojo; /** * Loginusers entity. @author MyEclipse Persistence Tools */ public class Loginusers extends AbstractLoginusers implements java.io.Serializable { // Constructors /** default constructor */ public Loginusers() { } /** minimal constructor */ public Loginusers(Integer id) { super(id); } /** full constructor */ public Loginusers(Integer id, String userName, String password) { super(id, userName, password); } } <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.pojo.Loginusers" table="loginusers" catalog="mydb"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="assigned" /> </id> <property name="userName" type="java.lang.String"> <column name="userName" /> </property> <property name="password" type="java.lang.String"> <column name="password" /> </property> </class> </hibernate-mapping> 5、在WebRoot下新建、编写login.jsp登录主页 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>spring Hibernate login</title> </head> <body> <h3>User Login</h3> <form action="validate.jsp" method="post"> <label>Account: </label> <input type="text" name="userName"/><br> <label>Password:</label> <input type="password" name="password"/><br><br> <input type="reset" value="reset"/> <input type="submit" value="submit"/> </form> </body> </html> 6、在持久层com.dao包下编写数据库操作类完成BaseDao基类(提供SessionFactory获取Session)、InterUserDao接口类、 UserDaoImpl接口实现类,实现用户验证 ![70 5][] package com.dao; import org.hibernate.Session; import org.hibernate.SessionFactory; public class BaseDao { //Dao持久层访问SessionFactor获取session对象的中间组件 //解耦Dao层与SessionFactory private SessionFactory sessionFactory; public SessionFactory getSessionFactory() { return sessionFactory; } public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Session getSession(){ Session session=sessionFactory.openSession(); return session; } } package com.dao; import com.pojo.Loginusers; public interface InterUserDao { public Loginusers validate(String name,String password); //提供数据库操作方法:验证用户名密码 } package com.dao; import java.util.Iterator; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import com.pojo.Loginusers; public class UserDaoImpl extends BaseDao implements InterUserDao { @Override public Loginusers validate(String name,String password) { // TODO Auto-generated method stub Session session=getSession(); //从BaseDao继承的方法中得到session Query query=session.createQuery("from Loginusers where userName=? and password=?"); query.setParameter(0, name); query.setParameter(1, password); List list=query.list(); Iterator it=list.iterator(); while(it.hasNext()){ if(list.size()!=0){ Loginusers user=(Loginusers)it.next();//创建持久化对象 return user; } } session.close(); return null; } } 7、修改applicationContext.xml文件添加BaseDao、UserDaoImpl的bean组件,在数据库配置bean中没有 数据库驱动DriverClass属性需手动添加。完成如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" xmlns:tx="http://www.springframework.org/schema/tx"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <!-- 配置数据库驱动 --> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/"></property> <property name="username" value="root"></property> <property name="password" value="root123"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> <property name="mappingResources"> <list> <value>com/pojo/Loginusers.hbm.xml</value> </list> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="baseDao" class="com.dao.BaseDao"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="userDaoImpl" class="com.dao.UserDaoImpl" lazy-init="false" parent="baseDao"></bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans> 8、在WebRoot下新建编写validate.jsp完成验证业务 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <%@ page import="org.springframework.context.*,org.springframework.context.support.*" %> <%@ page import="com.dao.*,com.pojo.*" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>验证业务方法</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String name=request.getParameter("userName"); String password=request.getParameter("password"); boolean flag=false; //验证标识符 Loginusers user=null; user=(Loginusers)session.getAttribute("user"); if(user==null){ //判断第一次登录 ApplicationContext context=new FileSystemXmlApplicationContext( "file:D:/JAVA-Develop/Workspaces/MyEclipse 2017 CI/spring_hibernate/src/applicationContext.xml"); InterUserDao interUserDao=(InterUserDao)context.getBean("userDaoImpl"); user=interUserDao.validate(name,password); if(user!=null){ session.setAttribute("user",user);//保存user对象 flag=true; } }else{ flag=true; } if(flag) response.sendRedirect("success.jsp"); else response.sendRedirect("error.jsp"); %> </body> </html> 9、在WebRoot下编写success.jsp成功页、error.jsp失败页 <%@ page language="java" import="java.util.*" import="com.pojo.Loginusers" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> success login</title> </head> <body> <% Loginusers user=(Loginusers)session.getAttribute("user"); System.out.print(user); String uName=user.getUserName(); %> <h2 style="text-align:center;margin:200xp auto">Welcome <%=uName %>,Login Success</h2> </body> </html> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title> error login </title> </head> <body> <h2 style="text-align:center;margin:100px auto">Login Error</h2> </body> </html> 10、保存启动Tomcat,浏览器测试 ![70 6][] ![70 7][] ![70 8][] ![70 9][] [70]: /images/20220519/8483a6864d1e43c2ac1e5cb5a802b7f2.png [70 1]: /images/20220519/c674305d642b4547a8063d9343d5d3c9.png [70 2]: /images/20220519/599930bf31a847b2be7e11d58c410724.png [70 3]: /images/20220519/ba8dad7d5bbd454082913c734099f19e.png [70 4]: /images/20220519/e6412e6f23af4edd965f2663f69a1f4c.png [70 5]: /images/20220519/b15ed8143cd84b05a6eb145516d287d3.png [70 6]: /images/20220519/e979066ce0164587b1c6750982b1b830.png [70 7]: /images/20220519/4b1638d1ef8e4ae4bc2993951de45dcf.png [70 8]: /images/20220519/ca51bc0584464ba9ac8d7d42d562db66.png [70 9]: /images/20220519/2c9c860a8280490fb9f4b7231a4a12d1.png 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 最简单的 spring 整合 kafka 例子 这周到联调阶段,回顾项目的开发,之前在spring跟kafka这块吃了不少亏,网上的资料太繁琐、配置好了还各种报错,我今天整理一个最最简单的demo,以供参考。 前提条件: 深碍√TFBOYSˉ_/ 2022年02月24日 13:19/ 0 赞/ 142 阅读
相关 Spring整合Hibernate 整合Hibernate 由 IOC 容器,生成 SessionFactory 对象 使用Spring 的声明式事务 LocalSessionFactoryBean 男娘i/ 2022年05月16日 17:24/ 0 赞/ 35 阅读
相关 Hibernate简单登录例子 1、登录用户表loginusers: ![70][] 2、新建JavaWeb工程hibernateModel1,完成部署hibernate(可参照[hibernate部署] 向右看齐/ 2022年05月19日 20:34/ 0 赞/ 58 阅读
相关 Spring简单整合hibernate实现登录例子 数据库loginusers表 ![70][] 1、新建javaWeb Porject项目spring\_hibernate,添加com.dao包(放置数据库操作类)、com 电玩女神/ 2022年05月19日 22:12/ 0 赞/ 62 阅读
相关 spring aop的简单实现例子 转载请声明出处 1 什么是AOP Spring 是解决实际开发中的一些问题: AOP 解决OOP 中遇到的一些问题.是OOP 的延续和扩展. 淩亂°似流年/ 2022年05月29日 11:17/ 0 赞/ 47 阅读
相关 spring cloud整合thymeleaf,实现简单登录 1、pom依赖 <!-- springboot模板 --> <dependency> <groupId>org.springframewor 阳光穿透心脏的1/2处/ 2022年05月30日 09:45/ 0 赞/ 151 阅读
相关 Spring 整合 Hibernate 源码: https://pan.baidu.com/s/1gfEPOpd 密码:4ie5 1. Spring 整合 Hibernate 整合什么 ? 1). 超、凢脫俗/ 2022年06月04日 11:19/ 0 赞/ 46 阅读
相关 shiro整合spring简单小例子 这里不对shiro做详细介绍,仅仅是做一个基本功能可以用的例子供大家参考,网上例子大多详细,不能实现。 1创建4张表: desc tb\_user; \+------- ╰半夏微凉°/ 2022年06月13日 22:25/ 0 赞/ 50 阅读
相关 Spring整合Hibernate 首先需要在Maven中导入如下的依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http 分手后的思念是犯贱/ 2022年06月17日 16:25/ 0 赞/ 30 阅读
相关 Spring 整合 Hibernate 1. Spring 整合 Hibernate 整合什么 ? 1). 有 IOC 容器来管理 Hibernate 的 SessionFactory 2). 让 Hibern 系统管理员/ 2022年07月18日 08:20/ 0 赞/ 31 阅读
还没有评论,来说两句吧...