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)的主要内容,如果未能解决你的问题,请参考以下文章