ssm框架mysql自增_手把手教你整合最优雅SSM框架

我们看招聘信息的时候,经常会看到这一点,需要具备 SSM 框架的技能, SpringMVC 可以完全替代 Struts,配合注解的方式,编程非常快捷,而且通过 restful 风格定义 url,让地址看起来非常优雅。 另外,MyBatis 也可以替换 Hibernate,正因为 MyBatis 的半自动特点,我们可以完全掌控 SQL,这会让有数据库经验的程序员(当然不是说我啦~捂脸)能开发出高效率的 SQL 语句,而且 XML 配置管理起来也非常方便。 好了,如果你也认同我的看法,那么下面我们一起来做整合吧!

在写代码之前我们先了解一下这三个框架分别是干什么的? 相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码!

SpringMVC:它用于 web 层,相当于 controller(等价于传统的 servlet 和 struts 的 action),用来处理用户请求。举个例子,用户在地址栏输入 http:// 网站域名 / login ,那么 springmvc 就会拦截到这个请求,并且调用 controller 层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是 springmvc 的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回 json/xml 等格式数据)。springmvc 就是做前面和后面过程的活,与用户打交道!!

Spring:太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是 IOC 容器,它可以装载 bean(也就是我们 java 中的类,当然也包括 service dao 里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字 new。另外 spring 的 aop,事务管理等等都是我们经常用到的。

MyBatis:如果你问我它跟鼎鼎大名的 Hibernate 有什么区别?我只想说,他更符合我的需求。第一,它能自由控制 sql,这会让有数据库经验的人编写的代码能搞提升数据库访问的效率。第二,它可以使用 xml 的方式来组织管理我们的 sql,因为一般程序出错很多情况下是 sql 出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的 sql。

SSM 框架整合配置

好了,前面 bb 那么多,下面我们真正开始敲代码了~

首先我们打开 IED,我这里用的是 idea,创建一个 maven 项目,建立好相应的目录结构

fed1f7ff747a42fa9c2190442c1dcf07-WX20180312195235.png

第一步: 使用 maven 引入 jar 包

我用 maven 来管理我们的jar,所以只需要在pom.xml中加入相应的依赖就好了.

pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.cnblogs.mmall

mmall

war

0.0.1-SNAPSHOT

1.8

1.8

4.1.7.RELEASE

3.3.0

5.1.37

junit

junit

4.11

ch.qos.logback

logback-classic

1.1.1

mysql

mysql-connector-java

5.1.37

runtime

com.alibaba

druid

1.1.5

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

1.2.3

taglibs

standard

1.1.2

jstl

jstl

1.2

com.fasterxml.jackson.core

jackson-databind

2.5.4

javax.servlet

javax.servlet-api

3.1.0

org.springframework

spring-core

${spring.version}

org.springframework

spring-beans

${spring.version}

org.springframework

spring-context

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-tx

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-test

${spring.version}

redis.clients

jedis

2.7.3

com.dyuproject.protostuff

protostuff-core

1.0.8

com.dyuproject.protostuff

protostuff-runtime

1.0.8

commons-collections

commons-collections

3.2.1

commons-fileupload

commons-fileupload

1.2.2

commons-io

commons-io

2.0.1

com.qiniu

qiniu-java-sdk

7.2.0

ssm

org.mybatis.generator

mybatis-generator-maven-plugin

1.3.2

true

true

mysql

mysql-connector-java

${mysql-connector.version}

org.mybatis.generator

mybatis-generator-core

1.3.2

org.mybatis

mybatis

${mybatis.version}

第二步:整合 mybatis

我们先在spring文件夹里新建spring-dao.xml文件,因为spring的配置太多,我们这里分三个,分别是dao service mvc。

读入数据库连接相关参数(可选)

配置数据连接池

配置连接属性,可以不读配置项文件直接在这里写死

配置druid, 配置某些常用的属性

配置SqlSessionFactory对象(mybatis)

扫描dao层接口,动态实现dao接口,也就是说不需要daoImpl,sql和参数都写在xml文件上

spring-dao.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

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

因为数据库配置相关参数是读取配置文件,所以在resources文件夹里新建一个jdbc.properties文件,存放我们常用的数据库连接属性.

jdbc.properties

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8

username=root

password=root

filters=stat

maxActive=20

initialSize=1

maxWait=60000

minIdle=10

timeBetweenEvictionRunsMillis=60000

minEvictableIdleTimeMillis=300000

validationQuery=SELECT 'x'

testWhileIdle=true

testOnBorrow=false

testOnReturn=false

maxOpenPreparedStatements=20

removeAbandoned=true

removeAbandonedTimeout=1800

logAbandoned=true

因为这里用到了mybatis,所以需要配置mybatis核心文件,在recources/confing/mybits文件夹里新建mybatis-config.xml文件。

使用自增主键

使用列别名

开启驼峰命名转换 create_time -> createTime

mybatis-config.xml

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

第三步:配置 service 层

刚弄好dao层,接下来到service层了。在spring文件夹里新建spring-service.xml文件。

扫描service包所有注解 @Service

配置事务管理器,把事务管理交由spring来完成

配置基于注解的声明式事务,可以直接在方法上@Transaction

spring-service.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"

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.xsd

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

http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

第四步:配置 web 层

在spring文件夹里新建springmvc.xml文件。

开启SpringMVC注解模式,可以使用@RequestMapping,@PathVariable,@ResponseBody等

对静态资源处理,如js,css,jpg等

配置jsp 显示ViewResolver,例如在controller中某个方法返回一个string类型的"login",实际上会返回"/WEB-INF/login.jsp"

扫描web层 @Controller

springmvc.xml

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.xsd

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

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

5242880

第五步:配置web.xml

配置 web.xml, 它在webapp的WEB-INF下

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1" metadata-complete="true">

ssm

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

DruidWebStatFilter

com.alibaba.druid.support.http.WebStatFilter

exclusions

*.js, *.gif, *.jpg, *.png ,*.css, *.ico, /druid/*

DruidWebStatFilter

/*

DruidStatView

com.alibaba.druid.support.http.StatViewServlet

DruidStatView

/druid/*

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:config/spring/springmvc.xml

1

springmvc

/

contextConfigLocation

classpath:config/spring/spring-*.xml

org.springframework.web.context.ContextLoaderListener

第六步: 其他配置文件

我们在项目中经常会使用到日志,所以这里还有配置日志xml,在resources文件夹里新建logback.xml文件,所给出的日志输出格式也是最基本的控制台s呼出,大家有兴趣查看logback官方文档。

logback.xml

%d %p (%file:%line\)- %m%n

UTF-8

class="ch.qos.logback.core.rolling.RollingFileAppender">

log/manager_sys.log

log/manager_sys.%d.%i.log

30

10MB

%d %p (%file:%line\)- %m%n

UTF-8

我们在实际开发中常常使用 generator-plugin 插件自动生成 pojo 和映射文件, 大大减轻我们的工作量. 其配置如下(放在 resoureces 根目录下):

generatorConfig.xml

/p>

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="root">

targetProject="./src/main/java">

targetProject="./src/main/resources">

targetPackage="com.liuyishi.ssm.mapper"

targetProject="./src/main/java">

至此, 我们一共写了8个配置文件. 我们一起来看下最终的配置文件结构图. 这样, 我们的 ssm 框架搭建完成了.

b46eba78a3d247d0a7a90579cced466d-1520857310697.jpg

因为我们的连接池启用 Web 监控统计功能, 所以访问 http://localhost:8080/druid/index.html 可以查看 sql 的监控统计功能.实时查看 sql监控, url监控,Session 监控信息.

4d0525dfb1204656ac19af1660d8b2e2-WX20180312234056.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值