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&useUnicode=true&characterEncoding=UTF-8&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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话