Spring整合Mybatis-完成用户登录

①导入的jar包:

在这里插入图片描述

②在src下创建并配置applicationcontext.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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置DataSource的bean对象:存储数据库连接参数--><bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="url" value="jdbc:mysql://localhost:3306/spring4?characterEncoding=utf8"></property><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="username" value="root"></property><property name="password" value="root"></property></bean><!--配置SQLSessionFactory的bean对象:生产SQLSession--><bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="datasource"></property></bean><!--配置Mapper扫描的bean对象:使用SQLSession扫描mapper包获取Mapper接口的实例化对象--><bean id="a" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="sqlSessionFactory" ref="factory"></property><property name="basePackage" value="com.java.mapper"></property></bean><!--配置service对象--><bean id="us" class="com.java.service.UserServiceImpl"><property name="um" ref="userMapper"></property></bean>
</beans>

③在web.xml文件中配置Spring容器对象的配置文件路径

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><!--配置全局参数:被项目中所有servlet共享--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationcontext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
</web-app>

④在Servlet的init方法中完成初始化资源的加载(从Spring容器对象中获取业务层对象)

package com.java.controller;import com.java.pojo.User;
import com.java.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.request.async.WebAsyncUtils;
import org.springframework.web.context.support.WebApplicationContextUtils;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(value = "/user", loadOnStartup = 1)
public class UserServlet extends HttpServlet {UserService userService;//在初始化方法中完成Spring容器资源的加载@Overridepublic void init() throws ServletException {//获取spring容器对象ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());//获取业务层对象userService = (UserService) ac.getBean("us");}@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");resp.setCharacterEncoding("utf-8");String uname = req.getParameter("uname");String pwd = req.getParameter("pwd");//处理请求//调用业务层方法User user = userService.userLoginService(uname, pwd);//响应结果//直接响应if (user != null) {resp.getWriter().write("登录成功");} else {resp.getWriter().write("登录失败");}}
}

⑤在业务层中声明mapper层的属性,并声明对应的get/set方法

package com.bjsxt.service;
import com.bjsxt.mapper.UserMapper;
import com.bjsxt.pojo.User;public class UserServiceImpl implements UserService{private UserMapper um;public UserMapper getUm() {return um;}public void setUm(UserMapper um) {this.um = um;}@Overridepublic User userLoginService(String uname, String pwd) {User user = um.userLoginMapper(uname, pwd);return user;}
}

⑥正常完成功能开发即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【jzoj】2018.2.7NOIP普及组——某【BC】组模拟赛

前言 ……终于改完了&#xff0c;像之前小L一样崩溃。今天C组和B组一起做题&#xff0c;所以…… 正题 题目1&#xff1a;教主的花园&#xff08;jzoj1792&#xff09; 一平面直角坐标系&#xff0c;在x轴的位置建立一堵墙&#xff0c;墙上有n道门&#xff0c;给出门的位置&a…

刘奕佳: 我的职校新生活 | 班级日常分享

点击上方蓝色关注我们&#xff01;时光匆匆&#xff0c;一转眼到了开学季&#xff0c;校园里弥漫着浓重的书香之气踏入校园&#xff0c;映入眼帘的就是雄伟的教学楼&#xff0c;意气风发的朗朗书声&#xff0c;让人情不自禁的陷入深深的学习中。实训楼当熟悉的上下课铃声又在我…

一个非常好的依存句法可视化工具

转载自 一个非常好的依存句法可视化工具 一个非常好的依存句法可视化工具 在依存句法研究中&#xff0c;常见的CONLL格式的句法树库&#xff0c;一眼看上去就不是太明白整棵树的结构。 这里分享推荐一个南京大学nlp实验室制作的一个依存句法可视化工具&#xff0c;效果如图…

DDD理论学习系列(8)-- 应用服务amp;amp;领域服务

1. 引言 单从字面理解&#xff0c;不管是领域服务还是应用服务&#xff0c;都是服务。而什么是服务&#xff1f;从SOA到微服务&#xff0c;它们所描述的服务都是一个宽泛的概念&#xff0c;我们可以理解为服务是行为的抽象。从前缀来看&#xff0c;根据DDD的经典分层架构&…

纪念中学15-5(=10)天感想

来自水lao ten days の 感想 前言 时光飞逝&#xff0c;转眼间&#xff0c;纪念中学的10天生活就那么过去了。回想起刚来&#xff0c;仿佛就在昨天。今天我将要离开这里&#xff0c;总感觉有无限的遗憾&#xff0c;无限的失落。可是花朵总是要谢&#xff0c;时光不停流逝。我…

祝张远远和杨凯博同学生日快乐 | 班级日常分享

点击上方蓝色关注我们&#xff01;首先祝张远远和杨凯博同学生日快乐&#xff01;上午丁老师和我说&#xff0c;今天是张远远同学的生日&#xff0c;于是我们就简单的商量了下&#xff0c;准备弄个活动&#xff0c;祝一下张远远同学生日快乐&#xff01;待下午时&#xff0c;获…

开放对静态资源的访问

前端控制器先进行处理&#xff0c;处理不了的交给default… 缺一不可

通俗理解维特比算法

转载自 通俗理解维特比算法 本文假定读者有一定的隐马模型基础&#xff01;或者大家可以参考这两篇文章。 隐马尔科夫模型-基本模型与三个基本问题和隐马尔科夫模型-前向算法 维特比算法说白了就是动态规划实现最短路径&#xff0c;只要知道“动态规划可以降低复杂度”这一…

使用docker-compose搭建AspNetCore开发环境

1 使用docker-compose搭建开发环境 我们的目标很简单&#xff1a;使用docker-compose把若干个docker容器组合起来就成了。 首先使用Nginx代理所有的Web程序&#xff0c;这样只需要在主机上监听一个端口就可以了&#xff0c;不污染主机。再组合各Web程序、Redis/Memcached、Sq…

珍惜、珍爱!

点击上方蓝色关注我们&#xff01;这是一篇付费文章&#xff0c;其实目的就是不让人看&#xff0c;哈哈哈&#xff01;不让别人看为什么还要写&#xff1f;因为写了才痛快&#xff01;

SpringAOP的SchemaBase方式

文章目录1、SpringAOP的专业概念:2、SpringAOP的SchemaBase方式基本流程SchemaBase方式环绕通知方式实现AOPSchemaBase方式的异常通知SpringAOP的SchemaBase方法的参数1、SpringAOP的专业概念: 真实对象: 要进行功能扩展的对象,相当于A对象 代理对象: 完成功能扩展的对象,相当于…

ssl2661-廉价最短路径【SPFA】

前言 这是一篇迟到的博客 题目 找一条最廉价的最短路径 输入输出&#xff08;建议无视&#xff09; Input 输入文件第一行有两个整数m和n&#xff0c;用一个空格隔开&#xff0c;其中&#xff0c;m是顶点数&#xff0c;而n是边数。接下来的n行给出所有的边及其价值&#…

自然语言处理的十个发展趋势

转载自 哈工大刘挺教授&#xff1a;自然语言处理的十个发展趋势 近日&#xff0c;由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办&#xff0c;CSDN、中国科学院自动化研究所承办的第三届中国人工智能大会&#xff08;CCAI 2017&#xff09;在杭州国际会议中心盛大开幕…

SpringAOP的Aspectj方式*

SpringAOP的Aspectj介绍 问题: 目前我们已经能够使用SpringAOP的SchemaBased方式来实现功能扩展。在使用SchemaBased方式实现功能扩展时&#xff0c;发现一个扩展代码就需要声明对应的实现了指定的接口的类&#xff0c;这样造成代码的结构体系过于繁杂。一个通知一个类。 解决…

拥抱.NET Core系列:依赖注入(1)

前言 DIP、IoC、DI 说起DI不得不提IoC这个模式&#xff0c;很多人会把DI和IoC混为一谈&#xff0c;但其实这两者是概念和实现的关系。 依赖倒置原则&#xff08;DIP&#xff09;&#xff1a;软件设计原则&#xff0c;要依赖于抽象&#xff0c;不要依赖具体实现。 控制反转&…

来自学长同学分享的学习方法

点击上方蓝色关注我们&#xff01;本文原创&#xff1a;陈浴森同学在科技高度发展的今天&#xff0c;计算机在生活中的作用越来越突出。在学校这一年多的学习当中&#xff0c;我总结了不少的经验&#xff0c;让我在以后的学习当中受益匪浅。一开始没学编程的时候&#xff0c;看…

训练集样本不平衡问题对CNN的影响

转载自 训练集样本不平衡问题对CNN的影响 训练集样本不平衡问题对CNN的影响 本文首发于知乎专栏“ai insight”&#xff01; 卷积神经网络&#xff08;CNN&#xff09;可以说是目前处理图像最有力的工具了。 而在机器学习分类问题中&#xff0c;样本不平衡又是一个经常遇到…

银行转账案例

[1] 案例需求 用户访问登录页面&#xff0c;在页面中输入用户名和密码点击登录&#xff0c;登录成功后 进入到主页中。如果登录败&#xff0c;则在登录页面中提示用户用户名或密码错误。在主页面中&#xff0c;用户在填写银行转账信息&#xff0c;包括:转账账户&#xff0c;转账…

20级、19级 | 一天一瞬间!【日更】

点击上方蓝色关注我们&#xff01;欢迎来到今天的一天一瞬间专栏今天是2020年09月08日&#xff0c;天气状况&#xff1a;炎热。19级目前还是上午上课下午补课&#xff0c;补课私下里和我说&#xff0c;班内学生表现都不错&#xff0c;听罢&#xff0c;甚是开心&#xff0c;不管…

一张图看懂小程序全生态

6月9日小程序发布整半年&#xff0c;这半年里&#xff0c;小程序接连经历了&#xff1a;受追捧——遇冷——质疑——趋于理性的过程。我们对小程序这半年来的产业发展做了全面的梳理&#xff0c;从中可以发现&#xff0c;小程序已俨然形成了自己的生态体系&#xff0c;这一生态…