SSM_基于传统web项目

1.这是一个单模块的项目!有四个配置文件,mybaits,spring。spring-mvc,web.xml!

2.web.xml配置文件,导入spring和spring-mvc的配置文件,spring配置文件中,获取sqlsession,以及关联mybatis的mpper(增删改查)文件

3.mybatis的配置文件则可以不用写

本次搭建SSM为传统web项目结构:

jar包信息:

spring为:4.3.14版本,该版本已经包含了@RestController注解

springmvc 注解@ResponseBody依赖版本:

jackson-annotations-2.6.5.jar

jackson-core-2.6.5.jar

jackson-databind-2.6.5.jar

mybatis:3.4.6版本

mybatis提供的整合包:mybatis-spring-1.3.1.jar

项目结构图如下:

    

编译后的项目如下:

   

说明:源码路径对应为编译后的WEB-INF/classes

1、配置web.xml

1.1 配置IOC容器监听器

1.2 配置web容器在启动时传递的上下文参数,这里传递spring的配置文件

1.3 配置springmvc

web.xml文件如下图:

1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 5 version="4.0"> 6 <!--容器启动时,容器初始化的一些参数--> 7 <context-param> 8 <param-name>contextConfigLocation</param-name> 9 <param-value>/WEB-INF/applicationContext.xml</param-value> 10 </context-param> 11 <!--IOC监听器,当web容器启动时,加载context-param标签中的spring配置文件--> 12 <listener> 13 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 14 </listener> 15 <servlet> 16 <servlet-name>dispatcher</servlet-name> 17 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 18 <load-on-startup>1</load-on-startup> 19 </servlet> 20 <!--注意此处填写的url路径,否则可能访问controller报404--> 21 <servlet-mapping> 22 <servlet-name>dispatcher</servlet-name> 23 <url-pattern>*.form</url-pattern> 24 </servlet-mapping> 25 26</web-app>

1.4 配置IOC容器:

1.4.1 配置数据源

1.4.2 整合MyBatis,即注入sqlSession

1.4.3 配置自动注入mapper接口实例,配置事务管理

applicationContext.xml如下:

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" xmlns:P="http://www.springframework.org/schema/p" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 5 6 <bean id="t_01" class="com.sxlg.spring.T_01_imp"></bean> 7 <!--引用第三方提供的数据源 8 1.dbcp数据源,destroy-method="close" 确保spring容器关闭时,数据源关闭。 9 commons-dbcp-1.4.jar 10 commons-pool-1.5.4.jar 11 2.C3P0数据源,3P0是一个开放源代码的JDBC数据源实现项目。 12 --> 13 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 14 destroy-method="close"> 15 <!--mysql-connector-java-5.1.45.jar--> 16 <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 17 <property name="url" value="jdbc:mysql://127.0.0.1:3306/match" /> 18 <property name="username" value="root" /> 19 <property name="password" value="123456" /> 20 21 </bean> 22 <!-- 23 配置session 24 1.位于mybatis提供的整个mybatis-spring.jar中 25 2.spring和MyBatis完美整合,不需要mybatis的配置映射文件 26 --> 27 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 28 <!--引用数据源--> 29 <property name="dataSource" ref="dataSource"/> 30 <!--加载mybatis的配置文件--> 31 <property name="configLocation" value="WEB-INF/mybatis-config.xml" /> 32 <!-- 自动扫描mapping.xml文件 33 除了让spring自动去扫描,也可以采用mybatis的原始配置方法, 34 在配置文件中加载sql的映射文件 35 --> 36 <property name="mapperLocations" value="WEB-INF/mappers/*.xml"></property> 37 38 </bean> 39 40 <!--可以将指定包下面的mapper接口实例化成一个spring bean , 就可以直接注入,不需要获取实例了--> 41 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 42 <property name="basePackage" value="com.ssm.dao" /> 43 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> 44 </bean> 45 46 <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx --> 47 <bean id="transactionManager" 48 class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 49 <property name="dataSource" ref="dataSource" /> 50 </bean> 51</beans>

1.5 添加Mybatis配置文件

由于spring已经整合了MyBatis,所以mybatis文件不需要进行任何处理,代码如下:

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

2 测试,编写controller

关于sqlSession的获取,存在两种方式:

2.1 利用mybatis-spring-1.3.1.jar提供的SqlSessionTemplate进行数据库操作。

2.2 让IOC容器直接注入mapper接口的实例,获取sqlSession,进行数据库操作。

此处采用方式2:

1   @Autowired 2 IGirlDao iGirlDao; 3 4 @RequestMapping(value = {"/demo"},method = RequestMethod.GET) 5 public List<Girl> method() 6 { 7 8 List<Girl> result = iGirlDao.selectAll(); 9 10 return result; 11 }
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )