SringMVC Mybatis结合例子

在Spring MVC和Mybatis中使用JUnit服务器 在本文中,我们将探讨如何在Spring MVC和Mybatis应用程序中使用JUnit服务器来进行测试。在JUnit服务器类上右键单击,选择"Run As" -> “JUnit Test”,JUnit将会执行我们编写的测试方法,并提供测试结果。现在我们已经配置好了JUnit服务器,接下来我们可以编写测试方法来测试我们的Spring MVC和Mybatis应用程序。现在我们已经完成了JUnit服务器的配置和编写测试方法,接下来我们可以运行测试来验证我们的代码是否正确。在上面的代码中,我们使用。 阅读详情

通过SpringMVC和Mybatis的入门简单学习,我们可以自然而然的想到既然SpringMVC控制页面显示和控制流程,Mybatis可以存取数据库的数据,那么为什么不把两者结合各司其职。只要通过简单的堆积把业务接口方法的调用放在controller方法中,并且将获得的数据显示到相应的jsp上,不就能轻易实现两者的结合而不会产生功能的累余或者冲突吗。

下面就设置一个合适需求:通过界面的学号输入返回该生所有信息

实现思路:简单的jsp表单界面获得学号,controller获得学号后调用mapper接口通过sql映射获得学生信息之后在界面中显示

1、新建web项目,首先完成springMVC的搭建。主要有controller类的编写、web.xml、[servlet-name]-servlet.xml的配置和jsp界面,当然还有spring的支持jar包,也可以直接部署spring完成导包。

controller:

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.mapper.InterStudentMapper;
import com.mapper.StudentMapperImpl;
import com.model.Student;

@Controller
//@RequestMapping("/jsp")
public class ServiceController {
	
	@RequestMapping(value="/index",method=RequestMethod.GET)
	public String showIndex(){
		return "index";
	}
	
	@RequestMapping(value="/show",method=RequestMethod.POST)
	public String getOneStudent(@RequestParam("sno")int sno){
		System.out.println(sno);
		return "show";
		
	}
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>spingMVC_mybatis</display-name>
 
	<servlet>
		<servlet-name>spring</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- <load-on-startup>1</load-on-startup> -->
		<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>/WEB-INF/spring-servlet.xml</param-value>
  		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>spring</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
</web-app>

spring-servlet.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"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">  

   
   <context:component-scan base-package="com.controller"/>
   
   
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   		<property name="prefix" value="/jsp/"/>
   		<property name="suffix" value=".jsp"/>
   </bean>
    
</beans>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'index.jsp' starting page</title>

  </head>
  
  <body>
    <form:form action="/springMVC_mybatis/show" method="post">
    	<label>请输入学号</label>
    	<input name="sno"/>
    	<input type="submit" value="submit"/>
    </form:form>
  </body>
</html>

到这里就可以输入http://localhost:8080/项目名/index测试一下springMVC是否部署正确

show.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'index.jsp' starting page</title>

  </head>
  
  <body>
    <table>
    	<h3>Student info</h3>
    	<tr>
    		<td>sno:</td><td>${sno}</td>
    	</tr>
    	<tr>
    		<td>sname:</td><td>${sname}</td>
    	</tr>
    	<tr>
    		<td>score:</td><td>${score}</td>
    	</tr>
    </table>
  </body>
</html>

springMVC到此编写完成

2、在此基础上完成Mybatis的添加。这里需要注意的是不同于单独的mybatis工程,web项目lib目录下需要把mybatis、jdbc包导入不然会报错。完整的项目结构如下:

Student实体类

package com.model;

public class Student {
	
	private int sno;
	private String sname;
	private double score;
	public int getSno() {
		return sno;
	}
	public void setSno(int sno) {
		this.sno = sno;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
	@Override
	public String toString() {
		return "Student [sno=" + sno + ", sname=" + sname + ", score=" + score + "]";
	}
	
}

mybatis.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

	<properties resource="mysql.properties"/>
	
	<environments default="devel">
		<environment id="devel">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
				<property name="url" value="${url}"/>
				<property name="username" value="${user}"/>
				<property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="com/mapper/StudentMapper.xml"/>
	</mappers>
	
</configuration>

mapper接口方法类、实现类、StudentMapper.xml配置

package com.mapper;

import com.model.Student;

public interface InterStudentMapper {

	public Student getStudentBySno(int sno);
}
package com.mapper;

import org.apache.ibatis.session.SqlSession;

import com.model.Student;
import com.tool.DBtool;

public class StudentMapperImpl implements InterStudentMapper {

	@Override
	public Student getStudentBySno(int sno) {
		SqlSession sqlSession=DBtool.getSqlSession();
		InterStudentMapper mapper=sqlSession.getMapper(InterStudentMapper.class);
		Student stu=mapper.getStudentBySno(sno);
		sqlSession.commit();
		sqlSession.close();
		return stu;
	}

}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.InterStudentMapper">
	
	<select id="getStudentBySno" parameterType="int" resultType="com.model.Student">
		select * from student where sno=#{sno}
	</select>
	
</mapper>

数据库连接的工具类

package com.tool;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class DBtool {

	private static SqlSessionFactory sqlSessionFactoty;
	
	static{
		try {
			Reader reader=Resources.getResourceAsReader("mybatis.cfg.xml");
			sqlSessionFactoty=new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static SqlSession getSqlSession(){
		return sqlSessionFactoty.openSession();
	}
	
}

完整的controller类

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.mapper.InterStudentMapper;
import com.mapper.StudentMapperImpl;
import com.model.Student;

@Controller
//@RequestMapping("/jsp")
public class ServiceController {
	
	@RequestMapping(value="/index",method=RequestMethod.GET)
	public String showIndex(){
		return "index";
	}
	
	@RequestMapping(value="/show",method=RequestMethod.POST,params="sno")
	public String getOneStudent(@RequestParam("sno")int sno,Model model){
		//System.out.println(sno);
		InterStudentMapper interStudentMapper=new StudentMapperImpl();
		Student stu=interStudentMapper.getStudentBySno(sno);
		System.out.println(stu);
		model.addAttribute("sno",stu.getSno());
		model.addAttribute("sname",stu.getSname());
		model.addAttribute("score",stu.getScore());
		return "show";
		
	}
}

结果测试

SringMVC+Spring+Mybatis(集成环境) springmvc+spring+mybatis集成开发demo eclipse项目 具体事项请阅读SSIDemo/WebContent/readme.txt 数据库文件在SSIDemo/si.sql 立即下载

相关推荐

SringMVC的经典例子(集成日志、json解析功能)

第一次接触springmvc,将例子上传一下提供给新手

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次,先说说三大框架整合过程。个人认

AndyLizh的专栏 156万+

idea下,使用SringBoot搭建SSM和JPA和不用SpringBoot搭建SSM和Mybatis映射数据库

idea下,使用SringBoot搭建SSM和JPA和不用SpringBoot搭建SSM和Mybatis映射数据库

用注解方式整合Springboot +SringMVC+ Mybatis

工具: IntelliJ IDEA 2019.1.3 x64 MySQL 步骤: 1.创建数据库。创建表tb_wxapp_activitytype 2.创建springboot项目,并勾选引用的依赖,依赖配置pom如下: <dependency> <groupId>org.springframework.boot</groupId...

张小三的博客 354

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 713

DeepMD-kit描述子机制解析:从原子坐标到不变性特征

本文深入解析DeepMD-kit描述子机制,详细阐述如何将原子坐标转换为具有平移、旋转和排列不变性的特征表示。探讨了se_e2_a、se_e3等不同描述子的适用场景及性能优化技巧,帮助读者掌握这一关键技术在分子模拟中的应用实践。

weixin_42520661的博客 340

sringMVC和mybatis的相关配置

Web.xml   "1.0"encoding="UTF-8"?> "http://www.w3.org/2001/XMLSchema-instance"          xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"      

qq_37270627的博客 264

分享通达信破解交易接口的使用!

那其实通达信破解交易接口的使用方法比较复杂,这里以MA均线指标为例子,只要理解了这些操作步骤,就可以很容易地使用其他指标包括自己编写的指标来进行交易。委托结果(包含委托编号), 需要分配 1024*1024 字节的空间。委托结果数组, 每项结果需要分配 1024*1024 字节的空间。0: 买入, 1: 卖出, 2: 融资买入, 3: 融券卖出,4: (市价委托)上海五档即成剩撤, 深圳五档即成剩撤。4: 买券还券, 5: 卖券还款, 6: 现券还券。0: 上海限价委托, 深圳限价委托。

1841085904的博客 2360

SSM整合-Spring整合SringMVC、Mybatis,ssm测试

SSM整合,Spring整合SpringMVC、Spring整合Mybatis、SSM整个测试

weixin_53903929的博客 662

利用图层自动识别算法实现CAD到Revit BIM模型的高效转换 - VS2022与AutoCAD2024开发环境配置指南

本文详细介绍了如何配置VS2022与AutoCAD2024开发环境,并利用图层自动识别算法实现CAD图纸到Revit BIM模型的高效自动化转换。通过解析CAD图层的规律性,该算法能智能识别并分类墙、门、窗等构件,提取几何信息并驱动Revit自动创建三维模型,从而将传统繁琐的人工“翻模”工作转化为高效、准确的自动化流程,大幅提升BIM模型创建效率。

Apple的专栏 1127

张量分解浅谈(四 Tucker 分解)

学完了SVD算法之后,我们继续回到张量几大分解的学习上来,本期学习的主要内容是张量的 Tucker 分解 以及 前面的CP分解还留下一点没有说完,正好一并补齐!后面的公式我将采用颜色标记,红色代表必须掌握,蓝色尽量掌握! 在这之前先附一张图,包含了各种运算符号的名称含义,大部分是前面说过或者使用过的: Tensor decomposition一 . Tucker 分解公式介绍和原理二 . 张量的 n-Rank 一 . Tucker 分解公式介绍和原理 我们先来看一张被使用过很多次的Trucker 分解图

欢迎来到 豪哥 的博客 1万+

SringMVC @Param的作用

1,使用@Param注解 当以下面的方式进行写SQL语句时:     @Select("select column from table where userid = #{userid} ")     public int selectColumn(int userid); 当你使用了使用@Param注解来声明参数时,如果使用 #{} 或 ${} 的方式都可以。

zzffhl的博客 426

SAP 系统里生成 PDF 的几条主干路径:从 Spool 转换到 Adobe 原生渲染,再到 BTP 云服务

本文系统梳理了SAP生态中PDF生成的多种技术方案,包括Spool转换、OTF转换、Smart Forms/Adobe Forms原生生成以及云端服务等不同路径。文章通过实际案例和代码示例,详细分析了各方案的适用场景、技术要点和工程实践建议,特别强调了多语言支持、字体处理、性能优化等关键因素。针对不同业务需求,提供了从简单导出到复杂交互式PDF的完整解决方案框架,为SAP环境下的PDF处理提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 288

shiro+maven+sringMVC+mybatis 实例

代码请看链接:  shiro 在上一节有介绍

芒果哥的专栏 628

【Docker】一招解决超时镜像超时报错:`ERROR: Get https://registry-1.docker.io/v2/`

Docker 镜像拉取超时或失败并不是 Docker 本身的缺陷,而是网络环境和默认配置在特定场景下的限制所导致的结果。通过本文的分析可以看到,问题的核心往往集中在三个方面:网络访问延迟、DNS 解析速度以及客户端默认超时时间。针对这些问题,最直接、有效的做法是使用国内镜像加速器,这不仅能够显著提升拉取速度,还能保证在企业内网或家庭网络中更加稳定

博客 1027

SSE 传输过程中,丢失空格和回车符,怎么解决?

Server - Sent Events(SSE)即服务器发送事件,是 HTML5 中的一项 Web API,用于实现服务器向客户端浏览器推送实时数据的功能。

934

Spring.xml和SringMVC.xml和Mybatis.xml的基本配置

Spring.xml和SringMVC.xml和Mybatis.xml的基本配置

ouo1231的博客 616

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SringMVC从入门到源码,这一篇就够

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲作者丨黎杜来源丨非科班的科班(ID:LDCldc1...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 165

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Spring SringMVC之配置文件配置学习

废话不多说,先来一个web项目web.xml实际例子 web.xml   Manager       contextConfigLocation     /WEB-INF/applicationContext.xml         字符集过滤器     encodingFilter     org.springframework.web.filter.Chara

My Blog My Style 574

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

学习Srping、SringMVC、Mybatis框架,模拟商城(解决SpringMVC请求乱码)

解决SpringMVC请求乱码       &lt;filter&gt;    &lt;filter-name&gt;characterEncodingFilter&lt;/filter-name&gt;    &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&...

zs243279672的博客 286

学习Srping、SringMVC、Mybatis框架,模拟商城(第一节 技术介绍及需求)

一、项目前台和后台,使用技术介绍

zs243279672的博客 285

学习Srping、SringMVC、Mybatis框架,模拟商城(第二节 MAVEN热部署到Tomcat)

一、修改Tomcat端口号找到apache-tomcat\conf\server.xml文件,修改端口号:&lt;Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000"   redirectPort="8443" /&gt;二、修改Tomcat管理员账号、密码找到apache-tomcat\conf\tomcat-use...

zs243279672的博客 231

Spring、Spring MVC、MyBatis 整合文件配置详解

今天跟大家分享下SSM框架整合文件配置的知识。 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了。先总结一下SSM整合的文件配置。其实具体的用法最好还是看官方文档。 Spring:http://spring.io/docs MyBatis:http://mybatis.github.io/mybatis-3/ 基本的组织结构和用法就不说了,前面的博客和官方文档上都非常的全面...

Purpletaro的专栏 149

maven+springMVC+mybatis+junit详细搭建过程

http://www.open-open.com/lib/view/open1392252233301.html 阅读目录 1.  工程目录结构整理清楚2.  引入依赖包3. 配置数据库连接属性4.  配置spring配置文件5.  java代码编写(model,dao,service层代码)6.  mybatis配置7.  junit测试插入功能8.  s

巅峰寂寞. 431

一、使用IDEA,利用maven整合ssm框架(spring+springmvc+mybatis+mysql))

1.工具 apache-tomcat 7 apache-maven(后面详细讲!这东西我一开始也很懵逼) mysql 5以上的版本 navicat(有了这个就不用cmd了,可以直接显示数据库,如下图,请自行百度绿色版QAQ) IntelliJ IDEA 2016.3.4(http://www.jb51.net/softs/527945.html,根据连接教程慢慢安装吧~) 2.前言前不久学完了spr

zyf的博客 9658

SpringMVC返回json格式数据出现关于“No converter found for return value of type: class xxx”的解决方法

SpringMVC返回json格式数据出现关于“No converter found for return value of type: class xxx”的解决方法 今天搭建了Spring+SringMVC+mybatis后台框架写课设,写了一个请求响应的消息类,想让后端返回该类的json格式数据,在使用中出现错误: 之后上网搜了发现是因为要处理json对象的类,数据必须要有相关的get和set方法 (粗心)因为这个消息类是我从一个Springboot项目里直接拿来,当时是在Springboot项目使

mojiejieYXM的博客 310
上一篇: Mybatis 一对多关系
下一篇: Maven 入门小例子(MyEclipse2017版)
zero_130
博客等级 码龄10年 21粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值