Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例
Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例
(1) 结构
(说明目的是要做在线聊天室的,也包含登陆注册部分,先用这部分做个例子)开发环境用的是STS(spring tool suite)基于Eclipse开发的spring整合开发环境。
主要的几个文件说明:userbean.java 用户的bean文件,userbean.hbm.xml是他的hibernate映射文件。application-config.xml文件是spring的配置文件,里面包含数据源配置(连数据库),bean设置等。mvc-config.xml文件是springmvc 的配置文件。
(2)代码
userbean.java
public class UserBean {private String id;private String username;private String password;private String phone;private String email;private String address;public String getId() {return id;}public void setId(String 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;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}
UserDao.java
public interface UserDao {public UserBean getUser(String id);public void insert(UserBean user);void delete(String id);List<UserBean> queryUser(String username);void updateAddress(String userid, String address);void updatePhone(String userid, String phone);void updateEmail(String userid, String email);void updatePassword(String userid, String password);void updateName(String userid, String username); }
UserDaoImp.java
public class UserDaoImp implements UserDao{private SessionFactory sessionFactory;public void setSessionFactory(SessionFactory sessionFactory) {this.sessionFactory = sessionFactory;}@Overridepublic UserBean getUser(String id){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, id);session.close();return user;}@Overridepublic void insert(UserBean user){Session session=sessionFactory.openSession();session.beginTransaction();session.save(user);session.getTransaction().commit();session.close();}@Overridepublic void delete(String id){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, id);session.delete(user);session.getTransaction().commit();session.close();}@Overridepublic List<UserBean> queryUser(String username){Session session=sessionFactory.openSession();session.beginTransaction();String str="from UserBean user where username='"+username+"'";Query query=session.createQuery(str);List<UserBean> userlist=query.list();session.close();return userlist;}@Overridepublic void updateName(String userid,String username){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, userid);user.setUsername(username);session.update(user);session.getTransaction().commit();session.close();}@Overridepublic void updatePassword(String userid,String password){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, userid);user.setPassword(password);;session.update(user);session.getTransaction().commit();session.close();}@Overridepublic void updateEmail(String userid,String email){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, userid);user.setEmail(email);;session.update(user);session.getTransaction().commit();session.close();}@Overridepublic void updatePhone(String userid,String phone){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, userid);user.setPhone(phone);;session.update(user);session.getTransaction().commit();session.close();}@Overridepublic void updateAddress(String userid,String address){Session session=sessionFactory.openSession();session.beginTransaction();UserBean user=(UserBean) session.get(UserBean.class, userid);user.setAddress(address);;session.update(user);session.getTransaction().commit();session.close();}public static void main(String args[]){ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/application-config.xml");UserDaoImp udi=context.getBean(UserDaoImp.class);UserBean user=new UserBean();user.setUsername("zhangsan");user.setPassword("zhangsan");udi.insert(user);List<UserBean> ulist=udi.queryUser("zhangsan");for(int i=0;i<ulist.size();i++){System.out.println(ulist.get(i).getId());}}}
SignupController.java
@Controller @RequestMapping(value="/signup") public class SignupController {@RequestMapping()public ModelAndView signup(){ModelAndView mav=new ModelAndView();mav.setViewName("signup");mav.addObject("tag", 0);return mav;}@RequestMapping(value="/adduser")public ModelAndView addUser(String username,String password,String email,String phone,String address){ModelAndView mav=new ModelAndView();UserBean user=new UserBean();user.setEmail(email);user.setPassword(password);user.setPhone(phone);user.setUsername(username);user.setAddress(address);ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/application-config.xml");UserDaoImp udi=context.getBean(UserDaoImp.class);List<UserBean> userlist=udi.queryUser(username);if(userlist.size()==0){udi.insert(user);mav.setViewName("login");}else{//用户名已经存在mav.setViewName("signup");mav.addObject("tag", 1);}return mav;} }
UserBean.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated 2016-11-25 11:28:34 by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping><class name="com.hainan.cs.bean.UserBean" table="USERBEAN"><id name="id" type="java.lang.String"><column name="ID" /><generator class="uuid" /></id><property name="username" type="java.lang.String"><column name="USERNAME" /></property><property name="password" type="java.lang.String"><column name="PASSWORD" /></property><property name="phone" type="java.lang.String"><column name="PHONE" /></property><property name="email" type="java.lang.String"><column name="EMAIL" /></property><property name="address" type="java.lang.String"><column name="ADDRESS" /></property></class> </hibernate-mapping>
signup.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="${pageContext.request.contextPath}/resources/layoutit/src/css/bootstrap.min.css" rel="stylesheet"> <link href="${pageContext.request.contextPath}/resources/layoutit/src/css/style.css" rel="stylesheet"> <title>Sign Up</title> </head> <style> .error{ color:red;} </style> <body> <script type="text/javascript"> $(document).ready(function(){var name_exist_tag=0;name_exist_tag=${tag};if(name_exist_tag==1){alert("user name exist");} }); </script> <script src="${pageContext.request.contextPath}/resources/layoutit/src/js/jquery.min.js"></script> <script src="${pageContext.request.contextPath}/resources/layoutit/src/js/bootstrap.min.js"></script> <script src="${pageContext.request.contextPath}/resources/layoutit/src/js/scripts.js"></script> <script src="${pageContext.request.contextPath}/resources/jquery_validation/lib/jquery.js"></script> <script src="${pageContext.request.contextPath}/resources/jquery_validation/dist/jquery.validate.min.js"></script> <div class="container-fluid"><div class="row" style="background-color:#39D8D8;height:768px"><div class="col-md-12"><div class="row"><div class="col-md-4"></div><div class="col-md-4" style="background-color:#f5f5f5;margin-top:80px"><br><br><h2 style="text-align:center">Sign</h2><br><br><form role="form" id="signup" action="${pageContext.request.contextPath}/signup/adduser"><div class="form-group"><label for="username">user name:</label><input type="text" class="form-control" id="username" name="username"/></div><div class="form-group"><label for="password">Password:</label><input type="password" class="form-control" id="password" name="password"/></div><div class="form-group"><label for="rpassword">Password again:</label><input type="password" class="form-control" id="rpassword" name="rpassword"/></div><div class="form-group"><label for="email">email:</label><input type="email" class="form-control" id="email" name="email"/></div><div class="form-group"><label for="phone">phone:</label><input type="text" class="form-control" id="phone" name="phone"/></div><div class="form-group"><label for="address">address:</label><input type="text" class="form-control" id="address" name="address"/></div><button type="submit" class="btn btn-default" id="btn1">Submit</button><br><br></form><script type="text/javascript">$("#signup").validate({rules:{username: "required",password: "required",rpassword: {required: true,equalTo: "#password",},email: "required",phone: "required"},errorPlacement: function(error, element) {// Append error within linked label$( element ).closest( "form" ).find( "label[for='" + element.attr( "id" ) + "']" ).append( error );},errorElement: "span",messages:{password:"please input password",rpassword:{required:"please input password",equalTo: "password not same"}}});</script></div><div class="col-md-4"></div></div></div></div> </div> </body> </html>
login.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link href="${pageContext.request.contextPath}/resources/layoutit/src/css/bootstrap.min.css" rel="stylesheet"> <link href="${pageContext.request.contextPath}/resources/layoutit/src/css/style.css" rel="stylesheet"> <script src="${pageContext.request.contextPath}/resources/layoutit/src/js/jquery.min.js"></script> <script src="${pageContext.request.contextPath}/resources/layoutit/src/js/bootstrap.min.js"></script> <script src="${pageContext.request.contextPath}/resources/layoutit/src/js/scripts.js"></script> <title>login</title> </head> <body> <script type="text/javascript"> $(document).ready(function(){var password_right=0;password_right=${tag};if(password_right==1){alert("password or username is wrong!");} }); </script> <div class="container-fluid"><div class="row" style="background-color:#39D8D8;height:768px"><div class="col-md-12"><div class="row"><div class="col-md-4"></div><div class="col-md-4" style="background-color:#f5f5f5;margin-top:180px"><h2 style="text-align: center">Log In</h2><br><form role="form" action="${pageContext.request.contextPath }/login/userlogin"><div class="form-group"><label for="username">user name:</label><input type="text" class="form-control" id="username" name="username"/></div><div class="form-group"><label for="password">Password:</label><input type="password" class="form-control" id="password" name="password"/></div><div class="form-group"><div class="col-md-3"><button type="submit" class="btn btn-default">Log in</button></div><div class="col-md-3"><a href="${pageContext.request.contextPath }/signup" class="btn btn-default">Sign up</a></div><div class="col-md-6"></div></div><br><br><br><br></form></div><div class="col-md-4"></div></div></div></div> </div> </body> </html>
application-confg.xml
<?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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- Uncomment and add your base-package here:<context:component-scanbase-package="org.springframework.samples.service"/> --><!-- 配置数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/online_chart" /><property name="username" value="root" /><property name="password" value="root" /></bean><!-- 配置session factory --><!-- Hibernate 4 SessionFactory Bean definition --><bean id="hibernate4SessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop></props></property><property name="mappingLocations"><list><value>classpath:/com/hainan/cs/hbm/*.hbm.xml</value></list></property></bean><bean id="userdao" class="com.hainan.cs.dao.UserDaoImp"><property name="sessionFactory" ref="hibernate4SessionFactory"></property></bean> </beans>
mvc-config.xml
<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- Uncomment and your base-package here:--><context:component-scanbase-package="com.hainan.cs.controller"/><!-- 让springmvc放过存放静态资源的请求 --><mvc:resources mapping="/resources/**" location="/resources/" /><mvc:annotation-driven /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- Example: a logical view name of 'showMessage' is mapped to '/WEB-INF/jsp/showMessage.jsp' --><property name="prefix" value="/WEB-INF/view/"/><property name="suffix" value=".jsp"/></bean></beans>
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>online_chart</display-name><!--- Location of the XML file that defines the root application context.- Applied by ContextLoaderListener.--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/application-config.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--- Servlet that dispatches request to registered handlers (Controller implementations).--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/mvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.springframework.samples.service.service</groupId><artifactId>online_chart</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><properties><!-- Generic properties --><java.version>1.6</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- Web --><jsp.version>2.2</jsp.version><jstl.version>1.2</jstl.version><servlet.version>2.5</servlet.version><!-- Spring --><spring-framework.version>3.2.3.RELEASE</spring-framework.version><!-- Hibernate / JPA --><hibernate.version>4.2.1.Final</hibernate.version><!-- Logging --><logback.version>1.0.13</logback.version><slf4j.version>1.7.5</slf4j.version><!-- Test --><junit.version>4.11</junit.version></properties><dependencies><!-- Spring MVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring-framework.version}</version></dependency><!-- Other Web dependencies --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>${jsp.version}</version><scope>provided</scope></dependency><!-- Spring and Transactions --><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring-framework.version}</version></dependency><!-- Logging with SLF4J & LogBack --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version><scope>compile</scope></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>${logback.version}</version><scope>runtime</scope></dependency><!-- Hibernate --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>${hibernate.version}</version></dependency><!-- Test Artifacts --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring-framework.version}</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- Spring ORM support --><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring-framework.version}</version></dependency><!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency></dependencies> </project>
(3)效果截图
注册页面
提交后数据库显示
(4)其他
注册页面还包含邮箱验证等,关于在线聊天室的开始会在这个的基础上后期进行开发。
Spring MVC + Spring + Hibernate + mysql 注册登陆入门实例相关推荐
- Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建
目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...
- Spring JPA数据+Hibernate+ MySQL + Maven
在Spring MVC的帮助下开发Web应用程序意味着要创建几个逻辑架构层. 层之一是DAO(存储库)层. 它负责与数据库进行通信. 如果您至少开发了DAO层一次,则应该知道它涉及许多样板代码. Sp ...
- B2C商城项目源码,基于Java开发的高可用分布式B2C商城系统,Java+Spring MVC+Dubbo+Zookeeper+MySQL+Redis+FastDFS+Nginx+Solr
目录 前言 B2C商城-AIYOU 一.项目总体架构 二.系统软硬件设施总体规划 1.系统服务规划 2.应用服务规划 3.应用系统域名规划 三.系统运行环境构建 四.项目数据库创建 五.项目拉取 六. ...
- Spring MVC+Spring +Hibernate配置事务,但是事务不起作用
最近做项目,被一个问题烦恼了很久.使用Spring MVC+Spring +Hibernate开发项目,在使用注解配置事务管理,刚开始发现无论如何数据库都无法更新,但是可以从数据库查询到数据.怀疑是配 ...
- Spring Mvc + Spring + Mybatis3 搭建Web工程详解
Spring MVC + Spring + Mybatis3 搭建Web工程原理 可能需要用到参考: Maven创建web项目:http://blog.csdn.net/liangmaoxuan/ar ...
- Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解)(转载)
Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解) 前言 本教程详细介绍了如何使用ssm框架实现支付宝支付功能.本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将 ...
- spring mvc+spring+mybatis+ajax实现登录验证
<h1>Spring Mvc+Spring+Mybatis+Ajax 实现异步登录的例子,和大家分享一下.</h1><div>login.js代码:</div ...
- SSM框架超级详细整合记录:Spring+Spring MVC+MyBatis+Maven+MySQL
1.前言 本文主要对SSM框架整合的过程进行记录,作为之后参考的依据. 1.1.参考文章 Spring代码实例系列-绪论 Spring MVC代码实例系列-绪论 MyBatis代码实例系列-绪论 1. ...
- 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)详细教程重要
前言 SSM(Spring+SpringMVC+Mybatis)是目前较为主流的企业级架构方案,不知道大家有没有留意,在我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教 ...
最新文章
- 史上最难的一道Java面试题
- 浮动元素的display属性
- Oracle管理拾遗(长期更新)
- C语言易错题集 第一部
- 高效应用程序的7个JVM参数
- 拜托,别再拿毒鸡汤祸害我们了,我们已经很苦很努力了
- mysql timediff 时间相减_leetcode题库-sql练习精讲系列--十、日期时间函数的使用
- linux重定向文件容加时间,linux – Shell重定向和文件I / O持续时间
- 查看局域网中的其他机器的IP地址
- Codejock Xtreme ToolkitPro MFC 使用
- CMMI有几个过程域?
- excel 比对字符
- Unity发布WebGL遇到的问题
- 如何在不清空原有配置的情况下修改路由器密码??????
- LeetCode(626):换座位 Exchange Seats(SQL)
- [转] ReactNative Animated动画详解
- 长期执业的顶尖领先律所ROSEN提醒Mylan N.V.投资者注意MYL证券集体诉讼的重要截止日期为8月25日
- 基于C语言的飞机票预订系统
- java 登录验证码_java实现登录验证码
- 解决windows图标和程序真正图标不一致的问题。
热门文章
- [tp3.2.1]让默认页面: 加载Home模块的Index控制器;而让admin.php默认去加载Admin模块的Adminc控制器....
- linux内核分析--异步io(一)
- 《神经网络》学习笔记
- Q99:当Bezier曲面(Utah Teapot)同时遇上“噪声纹理”和“Phong反射模型”
- Excel文件处理实战-Python编程进阶
- Characterizing stochastic time series with ordinal networks
- 当前仍在编辑文章 - Java 并 发 编 程 基 础
- linux 线程和进程优先级,c – 在linux中更改线程优先级和调度程序
- 2018年php框架,2018年的7个热门网站开发框架
- 将mysql数据库中的图片读出来的_MySQL存入图片+Qt读入读出数据库中的图片