基于maven进行spring 和mybatis的整合(Myeclpise)

学习日记:基于maven进行spring和mybatis的整合,进行分页查询

  什么是maven:maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译、构建、测试、发布和报告等。在大型项目开发中,使用maven来管理是必不可少的。

 

  开发工具myeclipse:myclipse 10.0自带了maven的插件。也可以网上下载maven插件

  1、新建一个maven project,点击next,选择maven-archetype-webapp,点击next,填写Group ID和ArtiFact Id;

   Group ID:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId;

   ArtiFact Id:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式:

   version版本号,格式通常为x.x.x-里程碑。通常情况下,第一个x表示程序架构上发生重大变化,第二个x表示程序架构中的分支变化,第三个x表示程序改动的次数。常见的里程碑有如下值:① SNAPSHOT,快照版,

   正在开发的版 本;② Alpha,是内部测试版,一般不向外部发布,会有很多Bug,一般只有测试人员使用;③ Beta,公共测试版,通常有客户单位参与的测试;④ Release,即Release Candidate,候选版本,

   RC版不会再加入新的功能了,主要着重于除错;⑤ GA,即General Availability,正式发布的版本。

    基于maven进行spring 和mybatis的整合(Myeclpise)_第1张图片

   

  1.1目录结构: 

    基于maven进行spring 和mybatis的整合(Myeclpise)_第2张图片 

    src/main/java:该文件夹所有的java代码

    src/main/resources:该文件编写所有的配置文件

    src/test/java:编写所有的测试代码

    src/test/resources:编写所有的测试的配置文件

    webapp:相当于普通web工程的webroot目录

 

 

  2、配置pom.xml文件,pom.xml是maven开发的核心,因为所有的jar包都是通过maven配置的方式导入。

    spring和mybatisd的配置都能够在官网或者github上找到:

    spring配置:http://projects.spring.io/spring-framework/

    mybatis配置:http://mybatis.github.io/mybatis-3/zh/getting-started.html

    由于配置太多,大家可以参考一下我的配置:

    

        
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
          4.0.0
          edu.dave_market
          dave_market
          war
          0.0.1-SNAPSHOT
          dave_market Maven Webapp
          http://maven.apache.org
          
          
             
              3.2.9.RELEASE
              
              3.2.8
              
              1.7.7
              1.2.16
          
          
          
          
            
              junit
              junit
              4.12
              test
            
            
             
               javax.servlet 
               servlet-api 
               2.5 
               provided 
            
            
            
                org.codehaus.jackson
                jackson-core-asl
                1.9.13
            
              
            org.codehaus.jackson  
            jackson-mapper-asl  
            1.9.13  
         
            
            
            
            
                org.springframework
                spring-core
                ${spring.version}
            
            
            
                org.springframework
                spring-context
                ${spring.version}
            
            
            
                org.springframework
                spring-web
                ${spring.version}
            
            
            
                org.springframework
                spring-oxm
                ${spring.version}
            
            
            
                org.springframework
                spring-tx
                ${spring.version}
            
            
            
                org.springframework
                spring-webmvc
                ${spring.version}
            
            
            
                org.springframework
                spring-aop
                ${spring.version}
            
            
            
                org.springframework
                spring-context-support
                ${spring.version}
            
            
            
                org.springframework
                spring-jdbc
                3.2.9.RELEASE
            
            
            
                org.springframework
                spring-test
                ${spring.version}
            
            
            
            
                org.mybatis
                mybatis
                ${mybatis.version}
            
            
            
                org.mybatis
                mybatis-spring
                1.2.2
            
            
            
                mysql
                mysql-connector-java
                5.1.6
            
            
            
                com.alibaba
                druid
                1.0.13
            
            
            
            
                log4j
                log4j
                1.2.16
            
            
            
                org.slf4j
                slf4j-api
                ${slf4j.version}
            
            
            
               org.slf4j
               slf4j-simple
               ${slf4j.version}
            
            
            
            
                com.github.pagehelper
                pagehelper
                4.0.0
            
            
          
          
          
            dave_market
            
            
                
                    maven-compiler-plugin
                    
                    
                        1.6
                        1.6
                        UTF-8
                    
                
            
            
                
                    src/main/java
                    
                        **/*.xml
         
        
        
           src/main/resources
           
              include>**/*.*
                    
                
            
            
          
        

 

    3、配置mybatis的配置文件,因为是基于spring进行开发所以正在spring中扫描mapper接口的时候,也对mapper.xml文件进行扫描(注意:mapper接口必须和mapper.xml位于同一目录下面)

    

  
DOCTYPE configuration  
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

 
    
        
        <package name="edu.market.model"/>
    

 

     

    4、配置applicationContext.xml文件(由于通配符的原因,部分配置颜色出现问题,但是并不影响代码正常运行)

 



    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-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/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
    <!--加载数据库连接文件-->
    
 
    package="edu.market.service"/>
    package="edu.market.controller"/>
    
    
    
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        
    
    
    class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
      
      
      
      

      
      
       
      

      
      

      
      

      
      

      
      
      
      

          
      
      

      
       
      
      
  
  
      class="org.mybatis.spring.SqlSessionFactoryBean">
          
          
              
              
                  edu/market/mapper/*Mapper.xml
              
          
          
              
                  
                      
                          
                              dialect=mysql
                          
                      
                  
              
          
     

      
      
  
   
         

 

    5、配置web.xml文件

  


 
    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">
    
    
    
        contextConfigLocation
        classpath:config/spring/applicationContext-*.xml
    
    
    
        class>org.springframework.web.context.ContextLoaderListenerclass>
    
    
    
    
        CharacterEncodingFilter
        class>org.springframework.web.filter.CharacterEncodingFilterclass>
        
            encoding
            utf-8
        
    
    
        CharacterEncodingFilter
        /*
    
    
    
    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:config/spring/applicationContext.xml
        
    
    
    
        springmvc
        *.action
    
    
      
  
    index.jsp
  

 

    

    6、编写mapper和mapper.xml(注意,mapper的接口中的方法名要和mapper.xml文件中的id名相对应)

  

  
DOCTYPE mapper  
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


    
        (uid,username,password,email,state,lastlogin)
    

    
    
    
    
     
 

 

package edu.market.mapper;

import java.util.List;

import edu.market.model.User;

public interface UserMapper {
    //根据id查询用户
    public User findUserById(Integer id);
    //查询所有用户
    public List findAllUser();
    //根据用户名查询用户
    public User findUserByName(String username);
    

 

 

  7、service实现类,service接口的代码我就不贴了

package edu.market.service.impl;

import java.util.List;

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

import edu.market.mapper.UserMapper;
import edu.market.model.User;
import edu.market.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService{

    @Autowired
    private UserMapper userMapper;
    
    public User findUserById(Integer id) {
        return userMapper.findUserById(id);
    }

    @Override
    public List findAllUser() {
        ListuserList=userMapper.findAllUser();
        return userList;
    }

    @Override
    public User findUserByName(String username) {
        return userMapper.findUserByName(username);
    }

}

 

 

  8、controller层的实现

package edu.market.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.List;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.github.pagehelper.PageHelper;

import edu.market.model.User;
import edu.market.service.UserService;

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("findUserById")
    public String findUserById(Model model) {
        User user = userService.findUserById(10);
        model.addAttribute("user", user);
        return "index";
    }

    @RequestMapping("findAllUser")
    public String findAllUser(Model model) {
    在这里掉用了PageHelper.startPage(1, 4),第一个参数是第几页,第二个参数是每页条数 PageHelper.startPage(
1, 4); List userList = userService.findAllUser(); model.addAttribute("userList", userList); System.out.println(Arrays.toString(userList.toArray())); return "index"; } @RequestMapping("findUserByName") public void findUserByName(String username, HttpServletResponse response) { User user = userService.findUserByName(username); try { PrintWriter out = response.getWriter(); if (user != null) { out.print(true); } else { out.print(false); } } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("checkPassword") public void checkPassword(String username, String password, HttpServletResponse response) { User user = userService.findUserByName(username); try { PrintWriter out = response.getWriter(); if (user != null && password.equals(user.getPassword())) { if(user.getState()!=1){ out.print("2"); }else{ out.print("1"); } } else { out.print("0"); } } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("login") public String login(User user,HttpSession session){ System.out.println(1); session.setAttribute("user", user); return "redirect:index.html"; } }

 

转载于:https://www.cnblogs.com/googlemeoften/p/4696605.html

你可能感兴趣的:(基于maven进行spring 和mybatis的整合(Myeclpise))