maven 搭建 ssm

来源:互联网 发布:淘宝装修购买 编辑:程序博客网 时间:2024/06/11 17:33

前面我们用maven 搭建 springmvc+spring,今天我们再来添加一个持久化框架mybatis(前面也建过mybatis的helloworld),做一个查user信息的小项目

一 用maven来构建

1 构建方法参考 (换上项目对象模型配置文件就可以了pom.xml)

http://blog.csdn.net/onewby/article/details/78582477

2 p上项目架构,构建后补补一下包

这里写图片描述

3 数据库部分

//建数据库create database springmvc;//建表CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(10) DEFAULT NULL,  `password` varchar(10) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;//插入数据INSERT INTO `springmvc`.`user`(`id`,`username`,`password`)VALUES(1,'wby','123456')

4 web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"    xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">    <!--spring ioc 容器随web一起启动-->    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </context-param>    <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class>    </listener>    <!--    springmvc的默认配置文件是放在WEB-INF下的,叫action-servlet.xml    想改在resources下,那么就得修改web.xml下的分发器的servlet,具体如下:    -->    <servlet>        <servlet-name>action</servlet-name>        <servlet-class>            org.springframework.web.servlet.DispatcherServlet        </servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springmvc.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>        </servlet>    <servlet-mapping>        <servlet-name>action</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>

5 applicationContext.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:tx="http://www.springframework.org/schema/tx"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">    <!--spring 管理业务逻辑组件-->    <context:component-scan base-package="com.wby">        <!--除去控制器,交由Springmvc配置文件-->        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />    </context:component-scan>   <!--数据源 采用c3p0-->   <context:property-placeholder location="classpath:dbconfig.properties" />    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>        <property name="driverClass" value="${jdbc.driverClass}"></property>        <property name="user" value="${jdbc.user}"></property>        <property name="password" value="${jdbc.password}"></property>    </bean>    <!--事物管理-->    <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource"></property>    </bean>    <!-- 开启基于注解的事务 -->    <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>    <!--整合mybatis-->    <!--为了service 层能够调用 dao层下接口,现有如下配置-->    <!--@Autowired-->    <!--private UserMapper userMapper;-->    <!--public List<User> getUser(){-->    <!--return userMapper.getUser();-->    <!--}-->    <!---->    <!--创建sqlSessionFactory-->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource"></property>        <!-- 指定mybatis-config.xml全局配置文件的位置 -->        <property name="configLocation" value="classpath:mybatis-config.xml"></property>        <!-- 指定mapper文件的位置-->        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>    </bean><!--扫描所有的mapper,让他们可以注入进来-->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="basePackage" value="com.wby.dao"  />    </bean></beans>

6 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-4.0.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">    <!--控制网站跳转逻辑-->    <!--只扫描控制器-->    <context:component-scan base-package="com.wby" use-default-filters="false">        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />    </context:component-scan>    <!--处理动态资源等-->    <mvc:annotation-driven/>    <!--处理静态资源-->    <mvc:default-servlet-handler/>    <!--视图解析器-->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>        <property name="prefix" value="/WEB-INF/pages/"/>        <property name="suffix" value=".jsp"/>    </bean></beans>

7 mybatis-config.xml 配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>    <settings>        <!--开启驼峰命名-->        <setting name="mapUnderscoreToCamelCase" value="true"/>        <setting name="jdbcTypeForNull" value="NULL"/>        <setting name="lazyLoadingEnabled" value="true"/>    </settings>    <!--<databaseIdProvider type="DB_VENDOR">-->        <!--<property name="MySQL" value="mysql"/>-->        <!--<property name="Oracle" value="oracle"/>-->        <!--<property name="SQL Server" value="sqlserver"/>-->    <!--</databaseIdProvider>--></configuration>

8 entity(domain,ben)层 先建一user.java实体

package com.wby.entity;/** * Created by Administrator on 2017/11/25. */public class User {    private int id;    private String username;    private String password;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

9 dao层

package com.wby.dao;import java.util.List;import com.wby.entity.User;/** * Created by Administrator on 2017/11/25. */public interface UserMapper {    public  List<User> getUser();}

10 **dao层下接口的映射文件 ***mapper.xml(相当于daoimpl) UserMapper.xml

<?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.wby.dao.UserMapper">    <!--public List<User> getUser();-->    <select id="getUser" resultType="com.wby.entity.User">        select * from user    </select></mapper>

11 service 层

package com.wby.service;import com.wby.dao.UserMapper;import com.wby.entity.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * Created by Administrator on 2017/11/25. */@Servicepublic class UserService {   @Autowired   private UserMapper userMapper;    public List<User> getUser(){        return userMapper.getUser();    }}

12 controller层

package com.wby.controller;import com.wby.entity.User;import com.wby.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;import java.util.Map;/** * Created by Administrator on 2017/11/25. */@Controllerpublic class UserController {    @Autowired    UserService userService;    @RequestMapping("/index.html")    public String emps( Map<String,Object> map){        List<User> users = userService.getUser();        map.put("users", users);        return "main";    }}

dbconfig.properties

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/springmvcjdbc.driverClass=com.mysql.jdbc.Driverjdbc.user=rootjdbc.password=root

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.wby</groupId>    <artifactId>ssm</artifactId>    <version>1.0-SNAPSHOT</version>    <packaging>war</packaging><dependencies>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>4.3.12.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-core</artifactId>        <version>4.3.12.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-aspects</artifactId>        <version>4.3.12.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-jdbc</artifactId>        <version>4.3.12.RELEASE</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-web</artifactId>        <version>4.3.12.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-webmvc</artifactId>        <version>4.3.12.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/jstl/jstl -->    <dependency>        <groupId>jstl</groupId>        <artifactId>jstl</artifactId>        <version>1.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis</artifactId>        <version>3.4.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis-spring</artifactId>        <version>1.3.1</version>    </dependency>    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.41</version>    </dependency>    <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->    <dependency>        <groupId>com.mchange</groupId>        <artifactId>c3p0</artifactId>        <version>0.9.5.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->    <dependency>        <groupId>javax.servlet</groupId>        <artifactId>javax.servlet-api</artifactId>        <version>4.0.0</version>        <scope>provided</scope>    </dependency></dependencies></project>

二 建议

2.1.0采用tomcat 9.0莫名的问题,换为tomcat8.0莫名地解决

2.1.1百度了一下 maven ssm 404 ,查到说路径问题,前前后后看了百余变发现路径没问题啊

2.1.2WEB-INF 里面的.jsp不能直接访问,只能通过controller来控制访问,我认了,可我有一个index.jsp 就在webapp下也不给我访问…连localhost:8080也不给

emmm…如果出现此类问题先检查是否出现2.1.1,2.1.2,这样类似的情况么。。。若实在没有就换tomcat8 试试。

三 运行结果
这里写图片描述

这里写图片描述