ssm初步
来源:互联网 发布:周立功单片机笔试题目 编辑:程序博客网 时间:2024/06/01 07:51
1. 功能描述:
使用spring springMVC mybatis,实现 查询所有的部门
辅助: maven + 注解
2.
注意需要导入 j2ee的包
3. 然后就是 web.xml的编写:
导入springMVC配置---编码方式----spring的配置---mybatis配置--- 设置不拦截的 文件
<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/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- 此处可以可以配置成*.do,对应struts的后缀习惯 --><url-pattern>/</url-pattern></servlet-mapping><!-- 编码过滤器 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><async-supported>true</async-supported><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- Spring监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mybatis.xml</param-value></context-param><!-- 防止Spring内存溢出监听器 --><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern></servlet-mapping></web-app>然后就是 pom.xml配置:
2.依次导入 需要的jar包:
springMVC +mysql+ 日志+ 测试+spring+mybatis+jstl+fastjson+文件上传的
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xt</groupId><artifactId>cms</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>cms Maven Webapp</name><url>http://maven.apache.org</url><properties><!-- spring版本号 --><spring.version>4.0.2.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.6</mybatis.version><!-- log4j日志文件管理包版本 --><slf4j.version>1.7.7</slf4j.version><log4j.version>1.2.17</log4j.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency>mybatis核心包<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency>mybatis/spring包<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency>导入java ee jar 包<dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency>导入Mysql数据库链接jar包<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency>导入dbcp的jar包,用来在applicationContext.xml中配置数据库<dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency>JSTL标签类<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency>日志文件管理包log start<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency>格式化对象,方便输出日志<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency> --><!-- log end --><!-- 映入JSON --><!-- <dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.13</version></dependency>上传组件包<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.9</version></dependency></dependencies><build><finalName>cms</finalName></build></project>
4. 然后就是 接口层+实现层 mapper
public interface IDeptMapper {
public abstract List<Dept> findDepts();
}
<?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.xt.cms.mapper.IDeptMapper"> <resultMap type="com.xt.cms.domain.Dept" id="deptResultMap"> <id column="dept_id" property="deptId"/> <result column="dept_name" property="deptName"/> </resultMap> <select id="findDepts" resultMap="deptResultMap"> select dept_id,dept_name from tbdept </select></mapper>
5.然后就是service+serviceIMPL
public interface IDeptService {
public List<Dept> findDepts();
}
@Service("deptService")
public class DeptServiceImpl implements IDeptService{
@Autowired 自动注入
private IDeptMapper deptDao;
public List<Dept> findDepts() {
return deptDao.findDepts();
}
@Transactional 自动提交事务(MVC里面先不扫描)
public void saveDept(Dept dept){
}
}
6.domain层
7.然后就是 springMVC的配置
<?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:p="http://www.springframework.org/schema/p"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-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"><!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --> <context:component-scan base-package="com.xt.cms.controller"/><!--避免IE执行AJAX时,返回JSON出现下载文件 --><bean id="mappingJacksonHttpMessageConverter"class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>text/html;charset=UTF-8</value></list></property></bean><!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 --><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><list><ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 --></list></property><!-- 处理日期转换,从页面到controller --><property name="webBindingInitializer"><bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"><property name="conversionService"><beanclass="org.springframework.format.support.FormattingConversionServiceFactoryBean"></bean></property></bean></property></bean><!-- 定义跳转的文件的前后缀 ,视图模式配置 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --><property name="prefix" value="/WEB-INF/view/" /><property name="suffix" value=".jsp" /></bean></beans>8.
配置 spring—mybatis
先把 数据源的 文件导入
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/s2db
username=root
password=123456
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000
<?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:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"><!-- 开启事物注解 --><tx:annotation-driven /><context:component-scan base-package="com.xt.cms.mapper"/> <!--注,此处自动扫描注解的时候,不去扫描Service --> <context:component-scan base-package="com.xt.cms.service"/> <context:component-scan base-package="com.xt.cms.domain"/> <!--注,此处自动扫描注解的时候,不去扫描Service --> <!-- 读取db.properties --><bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="location" value="classpath:db.properties" /></bean><!-- 配置数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${driver}" /><property name="url" value="${url}" /><property name="username" value="${username}" /><property name="password" value="${password}" /><!-- 初始化连接大小 --><property name="initialSize" value="${initialSize}"></property><!-- 连接池最大数量 --><property name="maxActive" value="${maxActive}"></property><!-- 连接池最大空闲 --><property name="maxIdle" value="${maxIdle}"></property><!-- 连接池最小空闲 --><property name="minIdle" value="${minIdle}"></property><!-- 获取连接最大等待时间 --><property name="maxWait" value="${maxWait}"></property></bean><!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/xt/cms/mapper/*.xml"></property></bean><!-- DAO接口所在包名,Spring会自动查找其下的类 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.xt.cms.mapper" /><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!-- 事务管理 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean></beans>9. controller的编写 自动识别注入+path值引入+ ajax+取别名
package com.xt.cms.controller;@Controller@RequestMapping("/dept")public class DeptController {@Autowiredprivate IDeptService deptService;@RequestMapping("/list")public String findDept(HttpServletRequest request){List<Dept> ds = deptService.findDepts();request.setAttribute("ds", ds);return "deptlist";}@RequestMapping("/listjson/{id1}_{id2}_{id3}")public @ResponseBody List<Dept> findDept(@PathVariable int id1,@PathVariable int id2,@PathVariable int id3){System.out.println(id1+"\t"+id2+"\t"+id3);List<Dept> ds = deptService.findDepts();return ds;}}
@RequestMapping("/listjson/{id1}_{id2}_{id3}")
对应的 jsp页面 就是 url:'dept/listjson/1_2_3',
@ResponseBody List<Dept> 返回的 success: function(data)
10. 前端的编写
<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script><script type="text/javascript" src="js/json2.js"></script><script type="text/javascript">function dosome() {$.ajax({url:'dept/listjson/1_2_3',type:'post',datatype:'json',success:function(dt){alert(JSON.stringify(dt));},error:function(dt){alert(JSON.stringify(dt));}});}</script></head><body><h2><a href="dept/list">跳跳跳</a> <input type="button" onclick="dosome()"value="查啊" /></h2></body></html>
11. 附上 日志记录
log4j.rootLogger=debug,Console,File #\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u5730\u4E3A\u63A7\u5236\u53F0 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out #\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F log4j.appender.Console.layout = org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n #\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6 log4j.appender.File = org.apache.log4j.RollingFileAppender #\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55 log4j.appender.File.File = logs/ssm.log #\u5B9A\u4E49\u6587\u4EF6\u6700\u5927\u5927\u5C0F log4j.appender.File.MaxFileSize = 10MB # \u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7 log4j.appender.File.Threshold = ALL log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
- ssm初步
- ssm的初步整合
- ssm初步整合
- SpringBoot+SSM的初步整合
- taotao第二天:ssm整合+dubbo初步
- 实训ssm框架学习配置文件初步解析(一)
- ssm
- SSM
- ssm
- ssm
- ssm
- SSM
- ssm
- ssm
- ssm
- ssm
- SSM
- ssm
- Centos下安装JDK和Mysql
- ios通过SQLite自定义缓存数据
- 24. Swap Nodes in Pairs
- jedis 操作cluster以及故障演示
- 创建一个推荐程序
- ssm初步
- windwos下调度kettle任务
- Odoo - Testing Modules
- 用DCOS和marathon-lb实现服务发现和负载均衡:第一部分
- 109之今日学习
- AutoLayout VFL 笔记
- mysql数据库读写分离
- Rorr:Operation category READ is not supported in state standy
- 在Servlet中实现重定向