Maven, Spring MVC, Mybatis, Mysql and Java_1

最近分别学了Spring MVCMybatis,我将这两个揉合到一个项目里来,做一下简单的小结吧。


  1. 前期准备(Maven的安装、配置)
  2. Maven创建项目
  3. Spring MVC的配置文件(web.xml, spring mvc, log4j等的配置文件)
  4. Mybatis前期准备(下载Jar包及设置配置文件)

在这里没有写完,后续请查看博文,Maven, Spring MVC, Mybatis, Mysql and Java_2 

1. 前期准备

1.1 安装Maven

1.1.1. 下载并解压Maven:访问http://maven.apache.org/download.cgi ,下载apache-maven-3.3.1-bin.zip

1.1.2. 配置环境变量

 

  •   M2_HOME=Maven_Install_Dir
  •   在Path里添加 %M2_HOME%\bin;

 

1.2 配置Maven

M2_HOME/conf/settings.xml文件拷贝至%HOME%\.m2\settings.xml

注:因为放在这里每次升级maven版本都不需要更改我们的配置

 

扫描二维码关注公众号,回复: 5851209 查看本文章

1.3  Maven的配置文件 - settings.xml

settings.xml中需更改的项目:

  • 本地仓库路径(localRepository),可选项,如果不更改,则默认会安装在${user.home}/.m2/repository
  • 镜像(mirror)

镜像这个词,在计算机世界通常是指中心,核心东西的一个副本。

maven的核心就称之为一个mirror. 我们使用了官方推荐的,使用英国的一个镜像,这样我们每次对maven的访问,都将去这个库(非中心仓库)进行下载我们所需要的软件包。这样就降低了中心仓库的负载。因为中心仓库为了避免大量的访问,造成服务器的运行问题,有时会拒绝我们的访问的。

settings.xml文件中

 


2. Maven创建一个项目


2.1 Eclipse集成Maven

http://www.eclipse.org/downloads/packages/release/Kepler/SR2

  • 下载eclipse v4.3 即kepler, 自带m2e , 并配置eclipse
  • Eclipse -> Window -> Reference -> Maven ->

·         Installations -> Add ->之前安装的Maven路径

·         User Settings -> 确保settings.xml文件的路径正确


2.2 在命令行的方式,创建一个项目

在命令行中,进入d:\workspace\imooc\目录下,执行以下指令

mvn archetype:generate -DgroupId=imooc-arthur -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp

  • 通过mvn调用了maven的运行环境
  • archetype:generate 调用了某种插件,并且将插件上的某种目标运用
  • groupId是我们的坐标上的一个元素
  • artifactId也是我们的坐标上的一个元素,最终artifactId的值会成为我们所创建的目录结构的根目录的名称,也就是我们最终会创建一个名字叫spring-mvc-study的目录来作为我们项目的根目录
  • archetypeArtifactId 指明了我们创建目录类型的一个类型,在这里指明了是webapp类型


2.3 Eclipse中导入该项目

打开Eclipse,在Navigater标签,右键->Import->Maven->Existing Maven Projects. 在Maven Projects Page, 指向D:\workspace\imooc\spring-mvc-study\之后,点击Finish.

 

2.4 打开Eclipse,在Navigater标签,右键->Import->Maven->Existing Maven Projects. 在Maven Projects Page, 指向D:\workspace\imooc\spring-mvc-study\之后,点击Finish.

 

2.5 更改pom.xml文件

2.5.1  指出并管理dependency



2.5.2  插件(plugin)的管理


3. Spring MVC的配置文件

3.1  web.xml


l  context-param 标签:指定Spring应用上下文配置文件的路径

l  listener 标签:spring声明,我们加入ContextLoaderListener以及它所需要的配置文件的路径(已在context-param中指定)

l  init-param 标签:dispathcer servlet对应的上下文配置文件的路径

l  servlet 和servlet-mapping 标签:由于我们使用Spring MVC, 我们需要一个servlet. 即在web.xml中,配置一个servlet及相应的servlet mapping


3.2 mvc-dispatcher-servlet.xml  (spring MVC 的配置文件 )


·         springapplication context激活了对标签支持的一些生命周期的管理,所以它可以识别我们用标签配置的bean的声明。

·         spring激活了基于annotationDI,Controller也需要一些服务来调用业务逻辑,这里它需要使用依赖注入的方式来获取这些service,这个配置就完成了这项功能

·         DispatcherServlet上下文,只管理@Controller类型的bean,忽略其他类型的bean,如@Service

·         @Service会交给Spring上下文来处理,依然要理解层次和上下文

·         这个扩展了我们的驱动注解,可以进一步将请求参数绑定到控制器参数

  • ViewResolver

·         配置ViewResolver, 用来告诉DispatcherServlet将要哪个ViewResolver为你获取View

·         可以用多个ViewResolver,它们之间可以使用order属性进行排序

·         InternalResourceViewResolver放在最后。因为它必定会返回一个对象,这个对象有可能不是我们所需要的

·         对于JstlView, 它只需要配置前缀、后缀,我们就可以将这些东西拼接成我们的jsp文件

  • HandlerMapping, 无需配置,Spring MVC可以默认启动。在默认配置中,它会启动一个DefaultAnnotationHandlerMapping 类,这个类就可以为我们去解析我们基于一些注解的annotation mapping. 这就是我们所期望的,所以我们不需要对HandlerMapping做任何配置
  • 获得静态资源

3.3 applicationContext.xml(spring上下文配置文件)

  • 使它来启动基于annotationDI管理,同时我们需要告诉它,我们不需要管理Controller了,所以下面使用了exclude-filter
3.4 Spring MVC的上下文层级


  • 小的,它有多个,我们可以理解为是我们的。这个就是ContextLoaderListener所加载的上下文,它为我们提供所有应用,我们公共所使用的一些组件,一些服务,比如service层,dao层等。这些服务应当是被整个应用所共享的,它不应当局限在某一个DispatcherServlet上下文之中
  • 大的,显然是与特定DispatcherServlet相关的上下文。比如这里我们的DispatcherServlet,与它相关的Controller, ViewResolver, HandlerMapping等等。可以有多个DispatcherServlet, 公共的通用的上下文,就是为了在多个DispatcherServlet情况下所共有。


3.5 log4j的配置

在Eclipse中,将写好的log4j.properties文件放置在,spring-mvc-study1/src/main/resources/目录下

4. Mybatis

4.1 Mybatis相关JAR包的设置

4.1.1 下载 https://github.com/mybatis/mybatis-3/releases

  • mybatis-3.3.0.zip             ---mybatis*.jar
  • mybatis-3-mybatis-3.3.0.zip          ---source code


4.1.2 在项目中设置

  • mybatis-3.3.0.jar包,配置在 WEB-INF/lib/目录下
  • 项目右键 -> 属性 ->Java Build Path -> Libraries -> Add External JARs... -> 添加

·         mybatis-3.3.0.jar

·         mysql-connector-java-5.1.18-bin.jar

这样设置之后,写代码时可  import org.apache.ibatis.session.SqlSession 


4.1.3 配置文件

mybatis-3-mybatis-3.3.0\src\test\java\org\apache\ibatis\submitted\complex_property\Configuration.xml

mybatis-3-mybatis-3.3.0\src\test\java\org\apache\ibatis\submitted\complex_property\User.xml

Mybatis大部分的工作其实是在配置文件里边做

  • Configuration.xml , 核心配置文件

1.  有相关连接数据库的信息,如驱动,数据库地址端口号,用户名,密码等。

2.  导入sql配置的文件

3.  DBAccess.java中读取该配置文件

  • User.xml , 官方的sql配置演示。在该项目中更名为Course.xml
                   1.   该文件的目的是,配置sql语句,如select语句,并提供给sqlSession,让它读到并执行。
     2. 该文件在 Configuration.xml 文件中被读取




Configuration.xml




Course.xml


===Course.xml详解===

mapper namesapce="Course"

resultMap type="com.imooc.mvcdemo.model.Course" id=CourseResult

  • 这里的type指数据库里的字段对应的是java代码中的哪个的属性
  • 这里的id要保证在resultMap中是唯一的

id column="courseId" jdbcType="INTEGER" property="id"

  • <<span style="color:red">id 该行中的column值是数据库中的主键时才使用id来标识
  • column是指查询时的数据库列名
  • jdbcType对应于数据库中id的数据类型,数据库中的int在这里对应INTEGER
  • property是指java代码中对应的该类的属性名

result column="title" jdbcType="VARCHAR" property="title"

  • result 该行中的column值在数据库中为非主键时使用result来标识

      ......

select id="queryCourse" resultMap="CourseResult"

  • 这里的id要保证在该Course.xml文件中唯一
这里的属性名 resultMap 是指向了 resultMap 标签的,指向了标签的 id="CourseResult" ,意思是通过执行这里的 sql 语句,查询出来的这里的列名,会将在对应关系里找对应关系 ->column="ID" ,并将查出来的这一列的列值放到对应的对象属性 id 里面

猜你喜欢

转载自blog.csdn.net/enre_enre/article/details/52909516
今日推荐