学习ssm框架已经快一年了,今天把这个框架总结一下。

SSM 就是指 spring、SpringMVC和Mybatis。先说一下基本概念(百度上搜的)

1、基本概念

1.1、Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java

Objects,普通的 Java对象)映射成数据库中的记录。

2、开发环境

开发环境需要搭建maven,这里就不介绍了

3、新建一个maven项目

File--->New--->Maven Project

看到如下界面,点next

选择最下面的1.0,然后next

然后写好Group id 和 Artifact id,点击finish

这样,一个maven项目就建好了。

注意:刚建好的项目是不完整的,所以还要进行如下操作

右键项目--->Properties

Others改为UTF-8

Java Build Path--->Libraries,选中1.5后点击Edit..

选择jdk1.8

最后项目如果是这样那就说明修改完成了

4、SSM整合

4.1 修改web.xml文件

文件配置如下

Archetype Created Web Application

contextConfigLocation

classpath:spring-mybatis.xml

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

true

encoding

UTF-8

encodingFilter

/*

org.springframework.web.context.ContextLoaderListener

org.springframework.web.util.IntrospectorCleanupListener

default

/resources/*

SpringMVC

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring-mvc.xml

1

true

FileUploadServlet

FileUploadServlet

am.controller.FileUploadServlet

SpringMVC

/

FileUploadServlet

/FileUploadServlet

/index.jsp

15

4.2 配置jdbc

将数据库配置(jdbc.properties),日志配置(log4j.properties),spring-mvc配置(spring-mvc.xml),mybatis配置(spring-mybatis.xml)全部放在resources下面

jdbc配置如下:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://112.74.51.37:3306/am?useUnicode=true&characterEncoding=utf-8&useSSL=false

username=root

password=tq2016

#定义初始连接数

initialSize=0

#定义最大连接数

maxActive=20

#定义最大空闲

maxIdle=20

#定义最小空闲

minIdle=1

#定义最长等待时间

maxWait=60000

4.3 配置log4j

#定义LOG输出级别

log4j.rootLogger=INFO,Console,File

#定义日志输出目的地为控制台

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.Target=System.out

#可以灵活地指定日志输出格式,下面一行是指定具体的格式

log4j.appender.Console.layout = org.apache.log4j.PatternLayout

log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

#文件大小到达指定尺寸的时候产生一个新的文件

log4j.appender.File = org.apache.log4j.RollingFileAppender

#指定输出目录

log4j.appender.File.File = logs/ssm.log

#定义文件最大大小

log4j.appender.File.MaxFileSize = 10MB

# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志

log4j.appender.File.Threshold = DEBUG

log4j.appender.File.layout = org.apache.log4j.PatternLayout

log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

4.4 配置spring-mvc

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

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task-3.1.xsd">

text/html;charset=UTF-8

4.5 配置spring-mybatis

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">

4.6 pom.xml配置

pom文件中引入dependency以后可以自动下载相关jar包

4.0.0

hobby

ssm

war

0.0.1-SNAPSHOT

ssm Maven Webapp

http://maven.apache.org

4.0.2.RELEASE

3.1.1

1.7.7

1.2.17

org.apache.poi

poi

3.15

com.belerweb

pinyin4j

2.5.0

dom4j

dom4j

1.6.1

commons-httpclient

commons-httpclient

3.1

junit

junit

4.11

test

org.springframework

spring-core

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-oxm

${spring.version}

org.springframework

spring-tx

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-aop

${spring.version}

org.springframework

spring-context-support

${spring.version}

org.springframework

spring-test

${spring.version}

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.1.0

javax

javaee-api

7.0

mysql

mysql-connector-java

5.1.30

commons-dbcp

commons-dbcp

1.2.2

jstl

jstl

1.2

log4j

log4j

${log4j.version}

com.alibaba

fastjson

1.1.41

org.slf4j

slf4j-api

${slf4j.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

org.codehaus.jackson

jackson-mapper-asl

1.9.13

org.apache.httpcomponents

httpclient

4.5.2

commons-fileupload

commons-fileupload

1.3.1

commons-io

commons-io

2.4

commons-codec

commons-codec

1.9

org.apache.commons

commons-email

1.4

com.fasterxml.jackson.core

jackson-annotations

2.8.1

com.fasterxml.jackson.core

jackson-core

2.8.1

com.fasterxml.jackson.core

jackson-databind

2.8.1

javax.servlet

javax.servlet-api

3.1.0

provided

com.google.code.gson

gson

2.6.2

ssm

需要注意的是:必须在main/java下面加这四个包,如果不加的话就把spring-mvc.xml和spring-mybatis.xml文件中的相关部分注释掉,否则会报错。

需加如下四个包

如果不加需要注释掉spring-mvc.xml中

和spring-mybatis.xml中

这样就OK了

5、接下来开始配置两个数据源

5.1 将jdbc和mybatis文件各复制一份

jdbc就不多说了,和原版一样,换一下数据库就好了,如下

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/zizai?useUnicode=true&characterEncoding=utf-8

username=root

password=root

#aimo数据库连接

#url=jdbc:mysql://112.74.51.37:3306/back?useUnicode=true&characterEncoding=utf-8

#username=root

#password=tq2017

#定义初始连接数

initialSize=0

#定义最大连接数

maxActive=20

#定义最大空闲

maxIdle=20

#定义最小空闲

minIdle=1

#定义最长等待时间

maxWait=60000

5.2 配置spring-mybatis-back.xml

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">

5.3 配置spring-mybatis-front.xml

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">

5.4 配置web.xml

只需要在原来的基础上多引入一个配置文件即可

contextConfigLocation

classpath:spring-mybatis-front.xml,

classpath:spring-mybatis-back.xml

注意:

1、项目目录最好分开写

2、我配置好以后在项目启动时不会报错,但是调用方法时会报错

严重: Servlet.service() for servlet [SpringMVC] in context with path [/twodatasource] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${driver}'

### The error may exist in file [D:\aimospace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\twodatasource\WEB-INF\classes\com\twodatasource\front\mapping\UserMapper.xml]

### The error may involve com.twodatasource.front.dao.UserMapper.selectAll

### The error occurred while executing a query

### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class '${driver}'] with root cause

java.lang.ClassNotFoundException: ${driver}

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:260)

at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)

at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)

at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)

at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)

at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:66)

at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:279)

at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:69)

at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:56)

at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:267)

at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:141)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:101)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:95)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:483)

at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:355)

错误信息是加载不了{driver}

后来在配置文件中把它写死了就可以了

初始化连接大小连接池最大数量连接池最大空闲连接池最小空闲获取连接最大等待时间

关于这一点我也在网上搜索了一些答案,但是都没有能够正确的解决的。所以如果有哪位大神搞定了还请不吝啬赐教一下。

ssm框架mysql配置_ssm框架使用详解配置两个数据源相关推荐

  1. php事件和行为,Yii框架组件和事件行为管理详解

    Yii框架组件和事件行为管理详解 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Yii框架组件和事件行为管理详解.txt ] (友情提示:右键点上行txt文档名- ...

  2. 三大框架题目整合考试题(含详解)

    三大框架题目整合考试题(含详解) 1.在Hibernate的关联关系映射配置中,下列选项对于inverse说法错误的是(bd). (选择二项) A. inverse属性指定了关联关系中的方向 //in ...

  3. 如何配置Mybatis?(详解)

    如何配置Mybatis?(详解) 官网文档: https://mybatis.org/mybatis-3/zh/getting-started.html pom.xml <?xml versio ...

  4. docker导入MySQL文件_Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的 ...

  5. 深入mysql慢查询设置的详解

    深入mysql慢查询设置的详解 在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL语句将那些运行时间 比较 ...

  6. 关于Tomcat与MySQL连接池问题的详解

    转载自   关于Tomcat与MySQL连接池问题的详解 研究了一天,终于有所收获,希望对大家有所帮助.首先请大家注意:这里尤其讨论Tomcat5.5版本中遇到的问题,为什么尤其单对这个版本,我一会儿 ...

  7. MySQL事务及隔离级别详解

    MySQL事务及隔离级别详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的基本架构 MySQL的基本架构可以分为三块,即连接池,核心功能层,存储引擎层. 1> ...

  8. mysql 当前用户连接数,查看mysql当前连接数的方法详解

    1.查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10.140.1.1 processlist2.只查看当前连接数(Threads就是连接数.): ./mysqla ...

  9. MySQL数据类型以及基本使用详解

    MySQL数据类型以及基本使用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL服务器的主要组件 我们知道MySQL的主要组件主要是由服务端(mysqld)和客户端 ...

  10. 虚拟机2012搭建DNS服务器,Windows Server2012 安装配置DNS服务器方法详解

    Windows Server2012 安装配置DNS服务器方法详解 在云服务器 Windows Server2012 上安装配置DNS服务器方法,安装与配置非常简单,在这里写个完整教程方便大家查询 一 ...

最新文章

  1. js04--对象与正则表达式
  2. GSM Hacking Part① :使用SDR扫描嗅探GSM网络
  3. webRTC+coturn穿透服务器的安装与搭建
  4. win10配置JAVA和tomacat环境变量
  5. R语言高级算法之人工神经网络(Artificial Neural Network)
  6. 【Vue】—计算属性
  7. boost.asio无锁异步并发
  8. icesat2 重要参数
  9. dotNet基于office实现word转pdf
  10. mysql 报表设计工具_如何使用报表创建工具Navicat创建报表
  11. java jconsole_关于java:JConsole在Linux中的位置
  12. 最近游戏更新 未整理 无图片 续3
  13. 仿Windows画板喷漆笔刷效果
  14. EEG多元模式分析预测慈善捐赠行为
  15. html导出excel合并单元格,JS导出EXCEL,动态设置单元格格式,合并单元格(横向或纵向)等操作...
  16. 说几个我做过的兼职吧
  17. 贵州省计算机专业大学排名,贵州大学的计算机专业全国排名第几?
  18. php 微信订单,php 处理微信账单
  19. Qt报错:calling ‘split‘ with incomplete return type ‘QStringList‘
  20. 2017年最火的19个行业,你做哪行!

热门文章

  1. 在Ubuntu 14.04 64bit上搭建Scala开发环境
  2. linux进程间通信:popen函数通过管道与shell通信
  3. 扩展jquery实现客户端表格的分页、排序
  4. python多版本共存使用pip
  5. 12.MySql关于获取当前时间的三个函数
  6. 项目/程序的流程走向
  7. Tessellation (曲面细分) Displacement Mapping (贴图置换)
  8. Android环境变量的设置(详细图解版)
  9. B - Networking - poj 1287
  10. easyui-menu 解决disableItem不能禁用绑定事件的方法