maven+spring+springmvc+mybatis+mysql整合过程

来源:互联网 发布:java可变参数判断为空 编辑:程序博客网 时间:2024/05/20 14:43

1,首先eclipse安装maven插件,也可以使用自带的maven插件。可自行百度,有详细教程。(遇到坑就看看别人的经验,很好的)

2,创建maven项目,过程如下。

project Explorer 空白处右键-》new ->project ->搜索maven ->next->选择maven-archetype-webapp 1.0这表明要创建一个web项目。输入Group Id 和Artifact Id 两者组成报名,-》finish.(ps:本博主在这浪费了大量时间,最终以重新解压Eclipse包,重新安装maven插件而告终,虽然不知道是啥原因,但ssm整合成功)。


3,接下来从dao层,service层,controller层来展现如何实现User表的内容展现在页面上。

前沿:表就是一张简单的包含id,username,password字段的user表。可以使用工具进行创建,难者不会,会者不难。

a,我的习惯是从dao层开始写,首先写mapper的文件。

UserMapper.java接口代码如下:


package com.xiayu.mapper;


import java.util.List;


import com.xiayu.po.User;


public interface UserMapper {
public List<User> getUserList();
}



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.xiayu.mapper.UserMapper">
<select id="getUserList" resultType="com.xiayu.po.User">
select * from user
</select>
</mapper>


pojo包中的User.java代码

package com.xiayu.po;


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;
}

}


b,service层


UserService.java接口,他的作用是将各个mapper的功能聚合到一块。


package com.xiayu.service;


import java.util.List;


import com.xiayu.po.User;


public interface UserService {
public List<User> getUserList();
}


UserServiceImpl.java的代码,这是通过spring注入的Mapper对象实现UserService接口中方法


package com.xiayu.service;


import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


import com.xiayu.mapper.UserMapper;
import com.xiayu.po.User;


@Service
public class UserServiceImpl implements UserService{

@Autowired
private UserMapper userMapper;

public List<User> getUserList() {
return userMapper.getUserList();
}


}


C。controller层

package com.xiayu.controller;


import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


import com.xiayu.po.User;
import com.xiayu.service.UserServiceImpl;




@Controller
public class UserController {

@Autowired
private UserServiceImpl userServiceImpl;

@RequestMapping("/getUserList")
public ModelAndView getUserList() {

List<User> userList = userServiceImpl.getUserList();

ModelAndView modelAndView = new ModelAndView();

modelAndView.addObject("userList", userList);

modelAndView.setViewName("WEB-INF/jsp/userList.jsp");

return modelAndView;
}
}



4配置文件

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmzzhh?useUnicode=true&amp;characterEncoding=UTF-8&amp;noDatetimeStringSync=true"
jdbc.username=root
jdbc.password=sunliqian
jdbc.initialSize=0
jdbc.maxActive=20
jdbc.maxIdle=20
jdbc.minIdle=1
jdbc.maxWait=60000


log4j.properties文件

log4j.rootLogger=DEBUG,Console,File  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  
  
log4j.appender.File = org.apache.log4j.RollingFileAppender  
log4j.appender.File.File = logs/ssm.log
log4j.appender.File.MaxFileSize = 10MB  
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n 


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:p="http://www.springframework.org/schema/p"  
    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.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->  
    <context:component-scan base-package="com.xiayu.controller" />  
    
    <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->  
    <mvc:annotation-driven></mvc:annotation-driven>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>  
</beans>  


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: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.1.xsd    
                        http://www.springframework.org/schema/context    
                        http://www.springframework.org/schema/context/spring-context-3.1.xsd    
                        http://www.springframework.org/schema/mvc    
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">  
    <!-- 自动扫描 -->  
    <context:component-scan base-package="com.xiayu" />  
    <!-- 引入数据库配置文件 -->   
  <context:property-placeholder location="classpath:jdbc.properties"/>
 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
        destroy-method="close">  
        <property name="driverClassName" value="${jdbc.driver}" />  
        <property name="url" value="${jdbc.url}" />  
        <property name="username" value="${jdbc.username}" />  
        <property name="password" value="${jdbc.password}" />  
        <!-- 初始化连接大小 -->  
        <property name="initialSize" value="${jdbc.initialSize}"></property>  
        <!-- 连接池最大数量 -->  
        <property name="maxActive" value="${jdbc.maxActive}"></property>  
        <!-- 连接池最大空闲 -->  
        <property name="maxIdle" value="${jdbc.maxIdle}"></property>  
        <!-- 连接池最小空闲 -->  
        <property name="minIdle" value="${jdbc.minIdle}"></property>  
        <!-- 获取连接最大等待时间 -->  
        <property name="maxWait" value="${jdbc.maxWait}"></property>  
    </bean>  
  
  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据库连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 加载mybatis的全局配置文件 -->
<property name="configLocation" value="classpath:sqlMapperConfig.xml" />
  </bean>
<!-- mapper扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描包路径,如果需要扫描多个包,中间使用半角逗号隔开 -->
<property name="basePackage" value="com.xiayu.mapper"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>    
  
    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
    <bean id="transactionManager"  
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>
</beans>

sqlMapperConfig.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>
<typeAliases>
<!-- 批量扫描别名 -->
<package name="com.xiayu.po"/>
</typeAliases>
</configuration>

5.web.xml文件

<?xml version="1.0" encoding="UTF-8"?>  
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns="http://java.sun.com/xml/ns/javaee"  
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
        version="3.0">  
        <display-name>Archetype Created Web Application</display-name>  
        <!-- Spring和mybatis的配置文件 -->  
        <context-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath:spring-mybatis.xml</param-value>  
        </context-param>  
        <!-- Spring监听器 -->  
        <listener>  
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
        </listener>  
        <!-- Spring MVC servlet -->  
        <servlet>  
            <servlet-name>SpringMVC</servlet-name>  
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
            <init-param>  
                <param-name>contextConfigLocation</param-name>  
                <param-value>classpath:spring-mvc.xml</param-value>  
            </init-param>  
        </servlet>  
        <servlet-mapping>  
            <servlet-name>SpringMVC</servlet-name>  
            <!-- 此处可以可以配置成*.do,对应struts的后缀习惯 -->  
            <url-pattern>/</url-pattern>  
        </servlet-mapping>  
        
        <welcome-file-list>  
            <welcome-file>/index.jsp</welcome-file>  
        </welcome-file-list>  
    </web-app>  

6,对应的userList.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询商品列表</title>
</head>
<body> 
<form>
用户列表
<table width="100%" border=1>
<tr>
<td>用户id</td>
<td>用户名</td>
<td>用户密码</td>
</tr>
<c:forEach items="${userList }" var="user">
<tr>
<td>${user.id }</td>
<td>${user.username }</td>
<td>${user.password}</td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>

7.整合项目文件夹图




原创粉丝点击