Maven+SpringMVC+Spring+MyBatis连接MySQL数据库详细搭建整合过程

来源:互联网 发布:php 反射api 编辑:程序博客网 时间:2024/05/24 04:21

搭建步骤

  1. 创建Maven Web项目
  2. SpringMVC 配置及测试
  3. Spring+Mybatis配置及连接数据库测试

一、创建Maven Web项目
依照个人习惯自行创建。先新建一个Maven工程,再添加web支持
可参考博客:http://www.cnblogs.com/wql025/p/5205716.html
工程目录如图:
这里写图片描述
完整的pom.xml依赖

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.zhou.ssm</groupId>    <artifactId>ssmTest</artifactId>    <version>1.0-SNAPSHOT</version>    <properties>        <spring.version>4.3.1.RELEASE</spring.version>        <!-- mybatis版本号 -->        <mybatis.version>3.4.5</mybatis.version>    </properties>    <dependencies>        <!-- Spring 框架核心工具类 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- Spring 扩展服务 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- 为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-tx</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- jdbc支持包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-jdbc</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- 为了方便进行单元测试,添加spring-test包 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>${spring.version}</version>        </dependency>        <!--SpringMVC支持web端部署框架 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>${spring.version}</version>        </dependency>        <!-- 单元测试 -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.10</version>            <!--<scope>test</scope>-->        </dependency>        <!-- 切面编程  -->        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>1.8.5</version>        </dependency>        <!-- springMVC -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>4.2.5.RELEASE</version>        </dependency>        <!--mysql驱动包-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.35</version>        </dependency>        <!-- mybatis核心包 -->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>${mybatis.version}</version>        </dependency>        <!-- 添加mybatis与Spring整合的核心包 -->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>1.3.1</version>        </dependency>        <!-- servlet相关接口-->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>javax.servlet-api</artifactId>            <version>3.1.0</version>        </dependency>        <!-- JSTL标签类 -->        <dependency>            <groupId>javax.servlet</groupId>            <artifactId>jstl</artifactId>            <version>1.2</version>        </dependency>        <!-- JSON-lib解析json字符串-->        <dependency>            <groupId>net.sf.json-lib</groupId>            <artifactId>json-lib</artifactId>            <version>2.4</version>            <classifier>jdk15</classifier>        </dependency>        <!-- HTTP 请求 -->        <dependency>            <groupId>commons-httpclient</groupId>            <artifactId>commons-httpclient</artifactId>            <version>3.1</version>        </dependency>        <!-- validat 注解-->        <dependency>            <groupId>javax.validation</groupId>            <artifactId>validation-api</artifactId>            <version>1.1.0.Final</version>        </dependency>        <!-- 上传组件包 -->        <dependency>            <groupId>commons-fileupload</groupId>            <artifactId>commons-fileupload</artifactId>            <version>1.3.1</version>        </dependency>        <dependency>            <groupId>commons-io</groupId>            <artifactId>commons-io</artifactId>            <version>2.4</version>        </dependency>        <dependency>            <groupId>commons-codec</groupId>            <artifactId>commons-codec</artifactId>            <version>1.9</version>        </dependency>        <!-- 日志文件 -->        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>1.2.17</version>        </dependency>    </dependencies></project>

二、配置SpringMVC及测试

  1. pom添加SpringMVC依赖
        <!-- 单元测试 -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.10</version>            <!--<scope>test</scope>-->        </dependency>        <!-- springMVC -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>4.2.5.RELEASE</version>        </dependency>
  1. resources文件夹下,添加配置文件springmvc.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       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-3.2.xsd                         http://www.springframework.org/schema/context                        http://www.springframework.org/schema/context/spring-context-3.2.xsd                        http://www.springframework.org/schema/mvc                        http://www.springframework.org/schema/mvc/spring-mvc.xsd">    <!--静态资源映射/css/js-->    <mvc:resources mapping="/static/**" location="/static/"/>    <!-- 配置包扫描器 @Component,@Repository,@Service,@Controller-->    <context:component-scan base-package="com.zhou.ssm"/>     <!-- 开启springMVC的注解驱动,使得url可以映射到对应的controller -->      <mvc:annotation-driven />      <!-- 视图解析器- -->    <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>        <!--设置JSP文件的目录位置-->        <property name="prefix" value="/WEB-INF/view/"/>        <property name="suffix" value=".jsp"/>    </bean></beans>
  1. web.xml<–配置springmvc DispatcherServlet–>
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"         version="3.1">    <!--配置springmvc DispatcherServlet-->    <servlet>        <servlet-name>springMVC</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <!--Sources标注的文件夹下需要新建一个spring文件夹-->            <param-name>contextConfigLocation</param-name>            <param-value>classpath:spring-mvc.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>        <async-supported>true</async-supported>    </servlet>    <servlet-mapping>        <servlet-name>springMVC</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>
  1. 测试
    view文件夹下,新建index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>Title</title></head><body>Controller -->  index</body></html>

java包下,新建com.zhou.ssm包,目录下新建controller包
新建HelloController.java

@Controllerpublic class IndexController {    @RequestMapping(value="/", method= RequestMethod.GET)    public String index(){        return "index";    }}

配置tomcat运行测试。
SpringMVC配置简单可参考:
http://www.cnblogs.com/yanyd/p/4266179.html
http://www.cnblogs.com/winner-0715/p/5294917.html
超详细可参考:http://blog.csdn.net/qq_27093465/article/details/68961393

三、Spring+Mybatis配置及连接数据库测试

  1. pom.xml添加依赖:见最开始完整pom
  2. 添加配置文件jdbc.properties(数据库名test),spring-mybatis.xml
    jdbc.properties,修改web.xml
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNulljdbc.username=rootjdbc.password=123456

spring-mybatis.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"       xmlns:aop="http://www.springframework.org/schema/aop" 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-4.3.xsd        http://www.springframework.org/schema/aop        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">    <!-- 引入db.properties属性文件 -->    <context:property-placeholder location="classpath:jdbc.properties" />    <!--定义一个jdbc数据源,创建一个驱动管理数据源的bean -->    <bean id="jdbcDataSource"          class="org.springframework.jdbc.datasource.DriverManagerDataSource">        <property name="driverClassName" value="${jdbc.driverClassName}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}" />    </bean>    <!--创建一个sql会话工厂bean,指定数据源 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <!-- 指定数据源 -->        <property name="dataSource" ref="jdbcDataSource" />        <!--类型别名包,引入com.lmei.ssm.entity下的所有类 -->        <property name="typeAliasesPackage" value="com.zhou.ssm"></property>        <!--指定sql映射xml文件的路径 -->        <property name="mapperLocations" value="classpath:/mapper/*.xml"></property>    </bean>    <!--自动扫描映射接口-->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <!-- 指定sql会话工厂,在上面配置过的 -->        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>        <!-- 指定基础包,即自动扫描com.lmei.ssm.dao这个包下的所有接口类 -->        <property name="basePackage" value="com.zhou.ssm"></property>    </bean>    <!-- 创建一个sqlSession对象 -->    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">        <constructor-arg index="0" ref="sqlSessionFactory" />    </bean>    <!--自动扫描组件 -->    <context:component-scan base-package="com.zhou.ssm">        <context:exclude-filter type="aspectj" expression="com.ipu.pushMessage.mapper.*"/>    </context:component-scan>    <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy></beans>

在web.xml中添加:

<!-- Spring容器启动监听器 -->    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:spring-mybatis.xml</param-value>    </context-param>

3.代码连接数据库,单元测试连接
这里写图片描述

bean包,新建Media.java类, mysql建表

public class Media {    public String media_id;    public String type;    public String created_time;    public String status;    public String getMedia_id() {        return media_id;    }    public void setMedia_id(String media_id) {        this.media_id = media_id;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public String getCreated_time() {        return created_time;    }    public void setCreated_time(String created_time) {        this.created_time = created_time;    }    public String getStatus() {        return status;    }    public void setStatus(String status) {        this.status = status;    }}

mapper包下新建MediaMapper接口

@Repositorypublic interface MediaMapper {    public int saveMedia(Media media);    public List<Media> queryAll();}

service包下,新建MediaService接口

public interface MediaService {    public int saveMedia(Media media);    public List<Media> queryAll();}

impl包下,新建MediaServiceImpl类实现MediaService接口

@Servicepublic class MediaServiceImpl implements MediaService{    @Autowired    private MediaMapper mediamapper;    @Override    public int saveMedia(Media media){        return mediamapper.saveMedia(media);    }    @Overside    public List<Media> queryAll(){        return mediamapper.queryAll();    }}

配置文件resources包下的mapper包,新建MediaMapper.xml
增删改查详解参考:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#insert_update_and_delete

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--命名空间是对应接口的包名+类名 --><mapper namespace="com.ipu.pushMessage.mapper.MediaMapper">    <!-- paramerType:java自定义类型或数据类型-->    <insert id="saveMedia" parameterType="Media">        insert into psg_wechat_media(TYPE, MEDIA_ID, CREATED_TIME, STATUS) VALUES(#{type}, #{media_id}, #{created_time}, #{status})    </insert>    <select id="queryAll" resultType="Media">          select * from psg_wechat_media    </select></mapper>

添加测试类:

public class TestSpringMyBatis {    @Test    public void saveMedia() {        System.out.println("start-------------------------");        //初始化容器        ApplicationContext ctx=new ClassPathXmlApplicationContext("spring-mybatis.xml");        //获得bean        MediaMapper mediaMapper = ctx.getBean(MediaMapper.class);        //访问数据库        Media media = new Media();        media.setCreated_time("2017-01-01 10:23:23");        media.setMedia_id("80222");        media.setStatus("0");        media.setType("thume");        mediaMapper.saveMedia(media);        System.out.println("end----------------------------");    }}
public class QueryAllMedia {    @Test    public void queryallmedia(){        System.out.println("start-------------------------");        //初始化容器        ApplicationContext ctx=new ClassPathXmlApplicationContext("spring-mybatis.xml");        //获得bean        MediaMapper mediaMapper = ctx.getBean(MediaMapper.class);        List<Media> medialist = mediaMapper.queryAll();        for(Media i: medialist){            System.out.println("media: "+i.getMedia_id());            System.out.println("type: "+i.getType());            System.out.println("created_time: "+i.getCreated_time());            System.out.println("status: "+i.getStatus());            System.out.println();        }        System.out.println(medialist);    }}

右键运行测试类。
参考博客:https://www.cnblogs.com/lmei/p/7190755.html?utm_source=itdadao&utm_medium=referral

阅读全文
0 0
原创粉丝点击