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>
原文地址:https://www.cnblogs.com/zhangzhixi/p/14257169.html