本篇是大学2年级暑假第一次接触SSM写的随笔,也是对所学内容的总结。 在这篇文章中,我还借鉴了很多大佬(特别感谢李一峰大佬)的学习经验,并与我自己所学到的东西进行了契合。
写代码之前请带大家了解一下什么是SSM。 已经知道的人请跳过这一段。
spring MVC :在web层中使用,相当于controller (与传统servlet和struts操作等效),用于处理用户请求。 例如,如果用户在地址栏中输入http://个站点的域名/login,springmvc将截获该请求并调用控制器层的相应方法。 (它们可能包含用于验证用户名和密码的业务逻辑以及对数据库的查询操作,但这些都不是springmvc的角色。 )最终将结果返回给用户,并返回相应的页面。 (当然springmvc是指做好前后流程的工作,与用户打交道!
Spring :强大得无法用语言和一句话来表达。 但是,与我们平时的开发接触最多的是IOC容器,它可以加载bean (也就是我们java中的类,当然也包括service dao中的)。 有了这个机制,我们不需要每次使用这个类都将其初始化,我们很少看到关键词new。 另外,spring的aop、事务管理等都是我们经常使用的东西。
MyBatis :问问和有名的Hibernate有什么不同吧? 我想说他适合我的需求。 第一,可以自由控制sql。 这样,有数据库经验的人编写的代码就可以提高数据库的访问效率。 其次,可以使用xml方法有组织地管理我们的sql。 由于常见程序的错误往往是sql错误,因此在别人接管代码后,可以立即找到错误所在,也可以优化原来编写的sql。
SSM框架集成配置:
以下进入正文,可以快乐地敲击代码辽~
我在用idea。 (idea的好处我不详细知道。
创建动态web项目并构建适当的目录结构非常重要。
当然,有些目录目前不可用。 为了看起来完全,我会载辽。 另外,虽然几个目录的名字也有区别,但大致都写在我上面的目录上了。
对各目录的功能进行说明。
1 ) srcmainjava :存放我们的java代码,如下图操作看起来更舒服
2 ) src (主)存储各种spring、mybatis、log配置文件等资源文件。
3 ) srcmainresourcesmapper :包含与每个方法对应的sql并在其中配置。 你不需要写Impl。
4 )主(资源)打印(src )此处当然存储与打印相关的配置文件,并有三个层次:
5 ) srcmainresourcessql :其实这个可以没有,但是为了项目的完整性加入吧。
6 ) srcmainwebappresources :此处的资源是指项目的静态资源,如js CSS图像。
7 ) srcmain(webapp ) web-INF )重要目录。 无法访问外部浏览器。 只能从内部进入。 您可以将jsp或html (根据配置选择)放在此处。 此外,它是web.xml。
有最后一步的基础工作。 引入我们相应的jar包。 我使用maven管理jar,所以只需要在pom.xml中加入相应的依赖就可以了。 不用maven的人请自行前往官网下载相应的jar,并放入项目的WEB-INF/lib目录中。
pom.xml
10
11
12
13 junit
14 junit
15 4.11
16
17
18
19
20
21 ch.qos.logback
22逻辑-类
23 1.1.1
24
25
26
27
28 mysql
29 mysql-connector-java
30 5.1.37
31运行时间
32
33
34 c3p0
35 c3p0
36 0.9.1.2
37
38
39
40
41 org.mybatis
42 mybatis
43 3.3.0
44
45
46 org.mybatis
47 mybatis-spring
48 1.2.3
49
50
51
52
53标签
54标准版
55 1.1.256
57
58 jstl
59 jstl
60 1.2
61
62
63 com.fasterxml.jackson.core
64 jackson-databind
65 2.5.4
66
67
68 javax.servlet
69 javax.servlet-api
70 3.1.0
71
72
73
74
75
76 org.springframework
77 spring-core
78 4.1.7.RELEASE
79
80
81 org.springframework
82 spring-beans
83 4.1.7.RELEASE
84
85
86 org.springframework
87 spring-context
88 4.1.7.RELEASE
89
90
91
92 org.springframework
93 spring-jdbc
94 4.1.7.RELEASE
95
96
97 org.springframework
98 spring-tx
99 4.1.7.RELEASE
100
101
102
103 org.springframework
104 spring-web
105 4.1.7.RELEASE
106
107
108 org.springframework
109 spring-webmvc
110 4.1.7.RELEASE
111
112
113
114 org.springframework
115 spring-test
116 4.1.7.RELEASE
117
118
119
120
121 redis.clients
122 jedis
123 2.7.3
124
125
126 com.dyuproject.protostuff
127 protostuff-core
128 1.0.8
129
130
131 com.dyuproject.protostuff
132 protostuff-runtime
133 1.0.8
134
135
136
137
138 commons-collections
139 commons-collections
140 3.2
141
142
143
144 ssm
145
146
当然对于初学者上面的依赖不必全部导入,选择自己有用的即可。
下面真的要开始进行编码工作辽~
第一步:我们先在spring文件夹里新建spring-dao.xml文件,因为spring的配置太多,我们这里分三层,分别是dao service web。
读入数据库连接相关参数(可选)
配置数据连接池
配置连接属性,可以不读配置项文件直接在这里写死
配置c3p0,只配了几个常用的
配置SqlSessionFactory对象(mybatis)
扫描mapper层接口,动态实现mapper接口,也就是说不需要mapperImpl,sql和参数都写在xml文件上
第一步:spring-dao.xml
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文件,存放我们4个最常见的数据库连接属性
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/ssm?useUnicode=true&dtdhk=utf8
jdbc.username=root
jdbc.password=
友情提示:配置文件中的jdbc.username,如果写成username,可能会与系统环境中的username变量冲突,所以到时候真正连接数据库的时候,用户名就被替换成系统中的用户名(有得可能是administrator),那肯定是连接不成功的。
因为这里用到了mybatis,所以需要配置mybatis核心文件,在recources文件夹里新建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">
第二步:spring-service.xml
扫描service包所有注解 @Service
配置事务管理器,把事务管理交由spring来完成
配置基于注解的声明式事务,可以直接在方法上@Transaction
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">
第三步:spring-web.xml
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">
//
//
//
//
//
//
//
//
第四步:web.xml
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"metadata-complete="true">
seckill-dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-*.xml
seckill-dispatcher
/
我们在项目中经常会使用到日志,大家有兴趣的可以查看logback官方文档,然后配置出自己的日志xml。