zoukankan      html  css  js  c++  java
  • 11、简单用户注册实现:maven+servlet+mybatis+spring

    这里只是简单的使用spring整合mybatis的技术,所以不会有太多的业务逻辑,就一个练手的小模块,加深记忆!

     下面直接上代码:

    1、业务接口

    1 public interface UserDao {
    2     // 添加用户
    3     int addUser(User user);
    4 }

    2、业务接口实现类

     1 package com.zhixi.dao;
     2 import com.zhixi.pojo.User;
     3 import org.mybatis.spring.SqlSessionTemplate;
     4 import org.springframework.beans.factory.annotation.Autowired;
     5 import org.springframework.stereotype.Component;
     6 /**
     7  * @author zhangzhixi
     8  */
     9 @Component
    10 public class UserDaoImpl implements UserDao {
    11 
    12     @Autowired
    13     // 等同于mybatis中的SelSession
    14     private SqlSessionTemplate sqlSessionTemplate;
    15 
    16     public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
    17         this.sqlSessionTemplate = sqlSessionTemplate;
    18     }
    19 
    20     @Override
    21     public int addUser(User user) {
    22         UserDao mapper = sqlSessionTemplate.getMapper(UserDao.class);
    23         return mapper.addUser(user);
    24     }
    25 }

    3、实体类

     1 package com.zhixi.pojo;
     2 
     3 import lombok.AllArgsConstructor;
     4 import lombok.Data;
     5 import lombok.NoArgsConstructor;
     6 
     7 /**
     8  * @author zhangzhixi
     9  */
    10 @Data
    11 @NoArgsConstructor
    12 @AllArgsConstructor
    13 public class User {
    14     private int id;
    15     private String name;
    16     private String pwd;
    17 }

    4、servlet

     1 package com.zhixi.servlet;
     2 
     3 import com.zhixi.dao.UserDao;
     4 import com.zhixi.pojo.User;
     5 import org.springframework.context.ApplicationContext;
     6 import org.springframework.context.support.ClassPathXmlApplicationContext;
     7 
     8 import javax.servlet.ServletException;
     9 import javax.servlet.http.HttpServlet;
    10 import javax.servlet.http.HttpServletRequest;
    11 import javax.servlet.http.HttpServletResponse;
    12 import java.io.IOException;
    13 
    14 /**
    15  * @author zhangzhixi
    16  */
    17 public class LoginServlet extends HttpServlet {
    18     @Override
    19     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    20         request.setCharacterEncoding("utf-8");
    21         response.setContentType("text/html;charset=utf-8");
    22 
    23         // 获取用户输入的数据
    24         String logId = request.getParameter("id");
    25         String logName = request.getParameter("name");
    26         String logPwd = request.getParameter("pwd");
    27 
    28         // 获取spring中的配置文件信息
    29         ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    30         System.out.println("容器对象信息:" + context);
    31 
    32         // 获取service
    33         UserDao userDao = context.getBean("userDaoImpl", UserDao.class);
    34 
    35         User user = new User();
    36         user.setId(Integer.parseInt(logId));
    37         user.setName(logName);
    38         user.setPwd(logPwd);
    39         userDao.addUser(user);
    40 
    41         // 请求转发
    42         request.getRequestDispatcher("welcome.jsp").forward(request, response);
    43     }
    44 
    45     @Override
    46     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    47         doGet(request, response);
    48     }
    49 }

    5、mapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.zhixi.dao.UserDao">
    
        <insert id="addUser" parameterType="user">
            insert into user (id,name,pwd) values (#{id},#{name},#{pwd});
        </insert>
    
    </mapper>

    6、spring配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xmlns:context="http://www.springframework.org/schema/context"
     5        xmlns:aop="http://www.springframework.org/schema/aop"
     6 
     7        xsi:schemaLocation="http://www.springframework.org/schema/beans
     8         https://www.springframework.org/schema/beans/spring-beans.xsd
     9         http://www.springframework.org/schema/context
    10         https://www.springframework.org/schema/context/spring-context.xsd
    11 
    12         http://www.springframework.org/schema/aop
    13         https://www.springframework.org/schema/aop/spring-aop.xsd">
    14 
    15     <!--导入属性配置文件-->
    16     <context:property-placeholder location="classpath:jdbc.properties"/>
    17     <!--
    18         DataSource:使用Spring的数据源替换Mybatis的配置c3pθ dbcp druid
    19      我们这里使用Spring提供的JDBC:org.springframework.jdbc.datasource
    20     -->
    21     <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    22         <property name="driverClassName" value="${jdbc.driver}"/>
    23         <property name="url" value="${jdbc.url}"/>
    24         <property name="username" value="${jdbc.username}"/>
    25         <property name="password" value="${jdbc.password}"/>
    26     </bean>
    27 
    28 
    29     <!--sql会话工厂对象-->
    30     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    31         <property name="dataSource" ref="datasource"/>
    32         <!--连通mybatis、-->
    33         <property name="configLocation" value="mybatis-config.xml"/>
    34         <!--绑定mapper-->
    35         <property name="mapperLocations" value="mapper/UserMapper.xml"/>
    36     </bean>
    37 
    38     <!--sqlSession对象-->
    39     <bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    40         <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
    41     </bean>
    42 
    43     <!--统一管理bean-->
    44     <context:component-scan base-package="com.zhixi.dao"/>
    45 
    46 
    47 </beans>

    7、jdbc属性配置文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC
    jdbc.username=root
    jdbc.password=zhixi1

    8、mybatis配置文件

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4         "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 
     6 <configuration>
     7     <!--设置实体类别名-->
     8     <typeAliases>
     9         <package name="com.zhixi.pojo"/>
    10     </typeAliases>
    11 </configuration>

    9、登录页面

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3 <head>
     4     <title>Title</title>
     5 </head>
     6 <body>
     7 <form method="post" action="${pageContext.request.contextPath}/login">
     8     <span>
     9         <div>
    10             id:<input type="text" name="id">
    11         </div>
    12     </span>
    13     <span>
    14         <div>
    15             姓名:<input type="text" name="name">
    16         </div>
    17     </span>
    18     <span>
    19         <div>
    20             密码:<input type="password" name="pwd">
    21         </div>
    22     </span>
    23     <span>
    24         <div>
    25             <input type="submit" value="注册">
    26         </div>
    27     </span>
    28 </form>
    29 </body>
    30 </html>

    10、注册成功页面

    1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2 <html>
    3 <head>
    4     <title>Title</title>
    5 </head>
    6 <body>
    7 <h2>欢迎您注册成功</h2>
    8 </body>
    9 </html>

    11、web项目配置文件

    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0"
             metadata-complete="true">
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.zhixi.servlet.LoginServlet</servlet-class>
    </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/login</url-pattern>
        </servlet-mapping>
    </web-app>

    12、pom.xml(maven依赖)

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5   <modelVersion>4.0.0</modelVersion>
     6 
     7   <groupId>com.zhixi</groupId>
     8   <artifactId>spring-14-用户注册功能</artifactId>
     9   <version>1.0-SNAPSHOT</version>
    10   <packaging>war</packaging>
    11 
    12   <dependencies>
    13     <dependency>
    14       <groupId>junit</groupId>
    15       <artifactId>junit</artifactId>
    16       <version>4.11</version>
    17       <scope>test</scope>
    18     </dependency>
    19     <!--servlet依赖-->
    20     <dependency>
    21       <groupId>javax.servlet</groupId>
    22       <artifactId>javax.servlet-api</artifactId>
    23       <version>4.0.1</version>
    24     </dependency>
    25     <!--jsp依赖-->
    26     <dependency>
    27       <groupId>javax.servlet</groupId>
    28       <artifactId>jsp-api</artifactId>
    29       <version>2.0</version>
    30     </dependency>
    31     <!--mysql-jdbc依赖-->
    32     <dependency>
    33       <groupId>mysql</groupId>
    34       <artifactId>mysql-connector-java</artifactId>
    35       <version>5.1.48</version>
    36     </dependency>
    37     <!--JSTL表达式依赖-->
    38     <dependency>
    39       <groupId>javax.servlet.jsp.jstl</groupId>
    40       <artifactId>jstl-api</artifactId>
    41       <version>1.2</version>
    42     </dependency>
    43     <!--standard标签库依赖-->
    44     <dependency>
    45       <groupId>taglibs</groupId>
    46       <artifactId>standard</artifactId>
    47       <version>1.1.2</version>
    48     </dependency>
    49     <!--mybatis依赖-->
    50     <dependency>
    51       <groupId>org.mybatis</groupId>
    52       <artifactId>mybatis</artifactId>
    53       <version>3.4.6</version>
    54     </dependency>
    55     <!--自动生成set/get等方法的注解-->
    56     <dependency>
    57       <groupId>org.projectlombok</groupId>
    58       <artifactId>lombok</artifactId>
    59       <version>1.18.12</version>
    60     </dependency>
    61     <!--spring依赖-->
    62     <dependency>
    63       <groupId>org.springframework</groupId>
    64       <artifactId>spring-webmvc</artifactId>
    65       <version>5.2.12.RELEASE</version>
    66     </dependency>
    67     <!--springAOP的包-->
    68     <dependency>
    69       <groupId>org.aspectj</groupId>
    70       <artifactId>aspectjweaver</artifactId>
    71       <version>1.9.4</version>
    72     </dependency>
    73     <!--ssm整合jdbc依赖-->
    74     <dependency>
    75       <groupId>org.springframework</groupId>
    76       <artifactId>spring-jdbc</artifactId>
    77       <version>5.2.12.RELEASE</version>
    78     </dependency>
    79     <!--mybatis整合依赖-->
    80     <dependency>
    81       <groupId>org.mybatis</groupId>
    82       <artifactId>mybatis-spring</artifactId>
    83       <version>2.0.5</version>
    84     </dependency>
    85   </dependencies>
    86 
    87 
    88 </project>
  • 相关阅读:
    如何查看微信公众号的历史文章(微信订阅号查看历史消息)
    微信服务号有福啦 每月可以微信群发4次
    欲提高微信图文转化率 需学点如何吊胃口
    只需按一下空格键就可以标注 不用众里寻他千百度
    如何让你的微信图文转化率达到300%
    是智能手机推动windows xp系统停止服务吗
    响应式js幻灯片代码一枚
    微信公众平台回复链接可以直接访问,但不能是锚文字链接<a>标签
    如何用腾讯电脑管家备份微信聊天记录
    android版微信5.2.1更新 支持微信聊天记录备份到电脑上
  • 原文地址:https://www.cnblogs.com/zhangzhixi/p/14257169.html
Copyright © 2011-2022 走看看