sprigmvc、mybatis、spring整合

sprigmvc、mybatis、spring整合

整合之前当然必须要需要在Eclipse中添加所需要的jar包,我是采用spring4.0的jar包所有的包如下

aopalliance-1.0.jar、c3p0-0.9.1.2.jar、cglib-nodep-2.1_3.jar、com.springsource.org.apache.commons.fileupload-1.2.0.jar、com.springsource.org.apache.commons.io-1.4.0.jar、commons-fileupload-1.2.1.jar、commons-io-2.0.jar、commons-logging-1.1.3.jar、jackson-all-1.9.11.jar、springmvc_mybatis_srping/WebContent/WEB-INF/lib/jackson-annotations-2.1.5.jar、jackson-core-2.1.5.jar、jackson-databind-2.1.5.jar、jboss-logging-3.1.1.GA.jar、jstl.jar、log4j-core-2.0.2.jar、mchange-commons-java-0.2.8.jar、mybatis-3.2.8.jar、mybatis-spring-1.2.2.jar、mysql-connector-java-5.1.5-bin.jar、spring-aop-4.0.0.RELEASE.jar、spring-aspects-4.0.0.RELEASE.jar、spring-beans-4.0.0.RELEASE.jar、spring-context-4.0.0.RELEASE.jar、spring-context-support-4.0.0.RELEASE.jar、spring-instrument-4.0.0.RELEASE.jar、spring-jdbc-4.0.0.RELEASE.jar、spring-messaging-4.0.0.RELEASE.jar、spring-orm-4.0.0.RELEASE.jar、spring-oxm-4.0.0.RELEASE.jar、spring-test-4.0.0.RELEASE.jar、spring-tx-4.0.0.RELEASE.jar、spring-web-4.0.0.RELEASE.jar、spring-webmvc-4.0.0.RELEASE.jar

仅供参考:

也可以去我百度云下载:链接:http://pan.baidu.com/s/1ntA8rQL 密码:8taa

工程细节:



我的项目下载地址:链接:http://pan.baidu.com/s/10LwbO 密码:f437

第一:

我们先配置web.xml,这个很重要就不需要我说明了塞,配置springIOC容器和springIOC容器的启动



    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_2_5.xsd"
    id="WebApp_ID" version="2.5">
    
    
        springDispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:config/springmvc.xml
        

        
        1
    

    
        springDispatcherServlet
        /
    



    
    
        contextConfigLocation
        classpath:config/beans.xml
    



    
    
        org.springframework.web.context.ContextLoaderListener
    



    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        

        
        
            forceEncoding
            true
        

    

    
    
        encodingFilter
        
          
        /
    



    
    
        HiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    

    
        HiddenHttpMethodFilter
        /*
    



    
    
        org.springframework.web.util.IntrospectorCleanupListener
    

    
    
    
      
        /index.jsp  
   

    
    
   
   
    15
   

第二:

我们先把mybatis和spring进行整合,我们新建一个config资源文件

创建一个beans.xml文件,整合mybatis之后就可以不用mybatis.xml文件了,具体配置如下(我这里用的是C3P0数据源),具体每句话都有一定的解释,通过下面的配置mybatis和spring就有了完美的整合


    xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop" 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/aop
        http://www.springframework.org/schema/aop/spring-aop-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/tx
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
    
    
             class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        
    



    
    
                     expression="org.springframework.stereotype.Controller" />
                     expression="org.springframework.web.bind.annotation.ControllerAdvice" />
    

    
    
    
        
        
        
        
        
        
        
        
    


    
    
    
        
    
        
    


    
    
        
        
    


    
             class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        
    


    
    

第三:

我们来配置springmvc的基本配置在config里面新建一个springmvc.xml



    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/beans    
    http://www.springframework.org/schema/beans/spring-beans-4.0.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
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
    http://www.springframework.org/schema/mvc   
    http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/task
    http://www.springframework.org/schema/task/spring-task-4.0.xsd">
    
    
             use-default-filters="false">
                     expression="org.springframework.stereotype.Controller" />
                     expression="org.springframework.web.bind.annotation.ControllerAdvice" />
    

    
    
             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
        
    
    
    
    
    
             class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
        
            
                text/html;charset=UTF-8
            

        

    

    
    
    
             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        
            
                    
            

        

    
    
    
    
             class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
       
         
       
         
       
         
   


现在呢就可以启动tomcat服务器看看console里面是否报错,如果没有报错就说明整合完成

,现在需要我们测试

我们新建一个包名:cn.edu.cdtu.action、cn.edu.cdtu.dao、cn.edu.cdtu.entity、cn.edu.cdtu.service、cn.edu.cdtu.test、这些包名对应的分层意义我就不用多说了哈!

1、我们建一个UserAction.java
@Controller
public class UserAction{
    @Resource
    BaseService service;
    @RequestMapping("/hellow")
    public String testAction(Mapmap) {
        User user = service.findById(1);
        map.put("name", user);
        System.out.println(user);
        return "success";
    }

}

2、建一个BaseDao接口,我们不需要实现类哈,直接动态生成
public interface UserDao{
    void save(User user);
    void update(User user);
    void delete(int id);
    User findById(int id);
    List findAll();
}
然后是dao的配置文件

UserDao.xml






    
        insert into s_user(user_name,user_birthday,user_salary)
        values(#{name},#{birthday},#{salary})
    

    

3、然后我们创建一个实体类

User.java
public class User {
    private int id;
    private String name;
    private Date birthday;
    private double salary;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public User(int id, String name, Date birthday, double salary) {
        super();
        this.id = id;
        this.name = name;
        this.birthday = birthday;
        this.salary = salary;
    }
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", birthday=" + birthday
                + ", salary=" + salary + "]";
    }

}

4、接下来我们创建service接口和实现类
//接口其实和dao的方法是一模一样的
public interface BaseService {
    void save(User user);
    void update(User user);
    void delete(int id);
    User findById(int id);
    List findAll();
}

实现类

package cn.edtu.cdtu.service.imp;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import cn.edtu.cdtu.dao.UserDao;
import cn.edtu.cdtu.entity.User;
import cn.edtu.cdtu.service.BaseService;
@Service
public class BaseUserImpl implements BaseService {
    @Resource
    UserDao userDao;

    @Override
    public void save(User user) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void update(User user) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void delete(int id) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public User findById(int id) {
        // TODO Auto-generated method stub
        return userDao.findById(id);
    }

    @Override
    public List findAll() {
        // TODO Auto-generated method stub
        return null;
    }
}


5、接下来我们就可以创建Test测试类啦
@RunWith(SpringJUnit4ClassRunner.class)//我们这里用的是spring自带的测试
@ContextConfiguration("/config/beans.xml")          //这句话的意思是找到beans.xml
public class Tests {
    @Autowired
    private UserDao userDao;
    public void test() {
        User user=new User(-1,"王五",new Date(),2500);
        userDao.save(user);
    }
    public void testSelect(){
        User user=userDao.findById(1);
        System.out.println(user);
    }
}

数据库我就不用贴出来了哈

还要注意的是有很多可以优化的地方

比如我们建一个db_properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_mybatis
username=root
password=837706069

可以把数据库的配置放在这里面,当然我是配置了很久没成功,可能是因为我们的是tomcat8或者是我的jdk是1.8的原因

还有就是我们需要像配置hibernate那样可以看到SQL语句那就需要配置

log4.properties放在config里面

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 = mybatis.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

或者配置 log4j.xml都是一样的e




    
        
                             value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
        

    

    
        
    

    
        
    

    
        
        
    




















你可能感兴趣的:(数据库,javaee,hibernate,mybatis,spring,整合)