Maven 搭建 SSM 项目 (oracle)

Posted 艾涵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven 搭建 SSM 项目 (oracle)相关的知识,希望对你有一定的参考价值。

简单谈一下maven搭建 ssm 项目 (使用数据库oracle,比 mysql 麻烦一点,所以这里谈一下)

并实现注册登录功能。

在创建maven 的web项目时,常常会缺了main/java , main/test 两个文件夹。

解决方法:

① : 在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre就可以了。 (推荐使用这种)

② :手动创建 目录。切换视图采用Navigator视图,直接在src/main目录下建立 Java目录。

 

项目目录结构:

 

在这普及一下 mvc 设计模式:

MVC 设计模式:单向

mvc 概念:

MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即为MVC。它是一种软件设计的典范

mvc 详解:

虽然MVC并不是Java当中独有的,但是现在几乎所有的B/S的架构都采用了 MVC 框架模式,但是 MVC 在B/S架构中并没有完全地实现,其实我们根本不需要掌握未实现的部分。 

模型 Model:模型代表着一种企业规范,就是业务流程/状态的处理以及业务规则的规定。业务流程的处理过程对其他层来说是不透明的,模型接受视图数据的请求,并返回最终的处理结果。业务模型的设计可以说是MVC的核心。

视图 View:视图即是用户看到并与之交互的界面,比如html(静态资源),JSP(动态资源)等等。 

控制器 Controller:控制器即是控制请求的处理逻辑,对请求进行处理,负责请 求转发; 

MVC 模式被广泛用于 Java 的各种框架中,比如 Struts2、Spring MVC 等等都用到了这种思想

 

顺带讲一下 MVVM 设计模式:双向

Model : 实体模型(biz/bean)

View : 布局文件(XML)

ViewModel : 对外暴露出公共属性,View和Model的绑定器

1.  可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多View重用这段视图逻辑。 在android中,布局里可以进行一个视图逻辑,并且Model发生变化,View也随着发生变化。

2.  低耦合。以前Activity、Fragment中需要把数据填充到View,还要进行一些视图逻辑。现在这些都可在布局中完成,甚至都不需要再Activity、Fragment去findViewById()。这时候Activity、Fragment只需要做好的逻辑处理就可以了。

 

目录结构的解释:

Java web 经典三层架构:

控制层(表现层):controller层(Handler层):

  采用 MVC 模式。 model(模型) view(视图) Controller(控制)
  M称为模型,也就是实体类。用于数据的封装和数据的传输。 
  V为视图,也就是GUI组件,用于数据的展示。 
  C为控制,也就是事件,用于流程的控制。

  负责具体的业务模块流程的控制,

  • 在此层里面要调用Service层的接口来控制业务流程;
  • 控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。

持久层(数据层):dao层(mapper):

  DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此, 

  • DAO层的设计首先是设计DAO的接口;
  • 然后在Spring的配置文件中定义此接口的实现类;
  • 然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰;
  • DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。

业务层:service层:

  Service层主要负责业务模块的逻辑应用设计。 

  • 首先设计接口,再设计其实现的类
  • 接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。
  • Service层的业务实现,具体要调用到已定义的DAO层的接口,
  • 封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。

 

实体类:entity:

  每个对象作为一个实体类,一般设置很多的私有属性,并有相应的setter和getter方法。 

  做相关数据表的映射

  对象属性的封装,体现了oo思想

核心包:core:包含模拟的核心类和接口类

工具包:util:包含所用到的一些工具类

 

重要的配置文件:

对象模型配置文件: pom.xml

Spring的配置文件:applicationContext.xml

spring MVC配置文件: springmvc.xml 

数据库配置文件: jdbc.properties

日志配置文件: log4j.properties

mybatis配置文件: mybatis-config.xml

网络程序配置文件:web.xml

 

首先配置pom.xml

pom.xml 主要描述了项目的maven坐标,依赖关系,自动引入jar包

  1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3     <modelVersion>4.0.0</modelVersion>
  4     <groupId>com.krry</groupId>
  5     <artifactId>maven_SSM</artifactId>
  6     <version>0.0.1-SNAPSHOT</version>
  7     <name>maven_SSM</name>
  8     <url>http://maven.apache.org</url>
  9 
 10     <dependencies>
 11         <!--引入junit  -->
 12         <dependency>
 13           <groupId>junit</groupId>
 14           <artifactId>junit</artifactId>
 15           <version>4.11</version>
 16           <scope>test</scope>
 17         </dependency>
 18         <!--引入servlet  -->
 19         <dependency>
 20             <groupId>javax.servlet</groupId>
 21             <artifactId>servlet-api</artifactId>
 22             <version>3.0-alpha-1</version>
 23             <scope>provided</scope>
 24         </dependency>
 25         <!--引入jstl的包  -->
 26         <dependency>
 27             <groupId>jstl</groupId>
 28             <artifactId>jstl</artifactId>
 29             <version>1.2</version>
 30             <scope>provided</scope>
 31          </dependency>
 32          
 33          <!--引入jsp的编译依赖  -->
 34          <dependency>
 35             <groupId>javax.servlet.jsp</groupId>
 36             <artifactId>jsp-api</artifactId>
 37             <version>2.2</version>
 38             <scope>provided</scope>
 39          </dependency>
 40          
 41          <!--引入log4j  -->
 42          <dependency>
 43             <groupId>log4j</groupId>
 44             <artifactId>log4j</artifactId>
 45             <version>1.2.17</version>
 46           </dependency>
 47          
 48          <!--spring springmvc mybatis  -->
 49          <!-- spring和springmvc相关的构建  jar -->    
 50          <dependency>
 51             <groupId>org.springframework</groupId>
 52             <artifactId>spring-context</artifactId>
 53             <version>4.2.1.RELEASE</version>
 54           </dependency>
 55           
 56           <dependency>
 57             <groupId>org.springframework</groupId>
 58             <artifactId>spring-jdbc</artifactId>
 59             <version>4.2.1.RELEASE</version>
 60           </dependency>
 61                
 62           <!-- springmvc相关 -->
 63          <dependency>
 64             <groupId>org.springframework</groupId>
 65             <artifactId>spring-webmvc</artifactId>
 66             <version>4.2.1.RELEASE</version>
 67           </dependency>
 68           
 69           <!--springmvc需要用到json的转换包 jackson  -->
 70          <dependency>
 71             <groupId>com.fasterxml.jackson.core</groupId>
 72             <artifactId>jackson-core</artifactId>
 73             <version>2.5.4</version>
 74           </dependency>
 75           
 76           <dependency>
 77             <groupId>com.fasterxml.jackson.core</groupId>
 78             <artifactId>jackson-annotations</artifactId>
 79             <version>2.5.4</version>
 80           </dependency>
 81          
 82          <dependency>
 83             <groupId>com.fasterxml.jackson.core</groupId>
 84             <artifactId>jackson-databind</artifactId>
 85             <version>2.5.4</version>
 86           </dependency>
 87           
 88           <!--JSR303 后台校验 hibernate validator -->     
 89          <dependency>
 90             <groupId>org.hibernate</groupId>
 91             <artifactId>hibernate-validator</artifactId>
 92             <version>5.1.1.Final</version>
 93           </dependency>
 94          
 95          <!--上传文件相关的jar包  -->
 96          <dependency>
 97             <groupId>commons-io</groupId>
 98             <artifactId>commons-io</artifactId>
 99             <version>2.4</version>
100           </dependency>
101           
102           <dependency>
103             <groupId>commons-fileupload</groupId>
104             <artifactId>commons-fileupload</artifactId>
105             <version>1.3.1</version>
106           </dependency>
107           
108           <dependency>
109             <groupId>org.apache.commons</groupId>
110             <artifactId>commons-lang3</artifactId>
111             <version>3.3.2</version>
112           </dependency>
113           
114           <!--跟加密算法相关的codeC  -->
115         <dependency>
116             <groupId>commons-codec</groupId>
117             <artifactId>commons-codec</artifactId>
118             <version>1.9</version>
119         </dependency>
120          
121          <!--orm或者jdbc组件需要用到的jar包 mybatis  -->
122         <!--oracle数据库驱动  -->
123         <dependency>
124             <groupId>com.oracle</groupId>    
125             <artifactId>ojdbc6</artifactId>    
126             <version>12.1.0.2.0</version>
127         </dependency>
128         <!--mysql数据库驱动 (这里不用,用的是上面的oracle驱动) -->
129         <!-- 
130         <dependency>
131             <groupId>mysql</groupId>
132             <artifactId>mysql-connector-java</artifactId>
133             <version>5.0.8</version>
134             <scope>runtime</scope>
135         </dependency>
136         -->
137         
138         <!-- proxool连接池 -->
139         <dependency>
140             <groupId>com.cloudhopper.proxool</groupId>
141             <artifactId>proxool</artifactId>
142             <version>0.9.1</version>
143         </dependency>
144         <dependency>
145             <groupId>com.cloudhopper.proxool</groupId>
146             <artifactId>proxool-cglib</artifactId>
147             <version>0.9.1</version>
148         </dependency>
149 
150 
151          <!--引入mybatis需要的jar包  -->
152          <dependency>
153             <groupId>org.mybatis</groupId>
154             <artifactId>mybatis</artifactId>
155             <version>3.3.1</version>
156         </dependency>
157         
158         <dependency>
159             <groupId>org.mybatis</groupId>
160             <artifactId>mybatis-spring</artifactId>
161             <version>1.2.4</version>
162         </dependency>
163         
164         <!-- 分页管理需要的jar包,这里没用到 -->
165         <dependency>
166             <groupId>com.github.pagehelper</groupId>
167             <artifactId>pagehelper</artifactId>
168             <version>4.2.1</version>
169         </dependency>
170         
171     </dependencies>
172     <build>
173         <plugins>  
174             <plugin>  
175                 <artifactId>maven-compiler-plugin</artifactId>  
176                 <configuration>  
177                     <source>1.7</source>  
178                     <target>1.7</target>  
179                 </configuration>  
180             </plugin>  
181             <plugin>  
182                 <artifactId>maven-war-plugin</artifactId>  
183                 <version>2.4</version>  
184                 <configuration>  
185                     <version>3.0</version>  
186                 </configuration>  
187             </plugin>  
188         </plugins>  
189         <finalName>maven_SSM</finalName>  
190     </build>  
191 </project>

这里说一下maven工程利用pom.xml导入oracle驱动包的问题:

由于Oracle授权问题,Maven不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。

如果电脑中已经装有Oracle数据库,则在安装路径下有数据库的驱动程序,可以直接用。D:\\Oracle\\oraclexe\\app\\oracle\\product\\10.2.0\\server\\jdbc\\lib

也可以直接到Oracle官网上下载Oracle数据库驱动, 使用SQL语句查询数据库驱动的版本: SELECT * FROM v$instance

然后确定版本下载:http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html 

 

打开windows的命令行界面,进入驱动包ojdbc6的目录,按住shift键后右键,从此处打开命令窗口,然后运行此命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.2.0 -Dpackaging=jar -Dfile=ojdbc6.jar
显示"BUILD SUCCESS" 成功,就会自动导入你的maven本地仓库。

然后就可以在maven项目里添加dependency,各坐标对应上面这个命令的个元素,如下:

1     <dependency>      
2       <groupId>com.oracle</groupId>      
3       <artifactId>ojdbc6</artifactId>      
4       <version>12.1.0.2.0</version>
5     </dependency>  

 

Spring的配置文件: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:aop="http://www.springframework.org/schema/aop"
 4     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans   
 7   http://www.springframework.org/schema/beans/spring-beans.xsd  
 8   http://www.springframework.org/schema/aop   
 9   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
10   http://www.springframework.org/schema/tx   
11   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
12   http://www.springframework.org/schema/context   
13   http://www.springframework.org/schema/context/spring-context-3.0.xsd
14   http://www.springf

以上是关于Maven 搭建 SSM 项目 (oracle)的主要内容,如果未能解决你的问题,请参考以下文章

ssm框架搭建

Maven项目搭建:Maven搭建SSM框架

Maven项目搭建:Maven搭建SSM框架

SSM框架搭建 创建MAVEN项目

实习小结--- SSM框架搭建(Maven项目)

使用maven搭建ssm框架的javaweb项目