zoukankan      html  css  js  c++  java
  • mybatis学习笔记 spring与mybatis整合

    转载自http://blog.csdn.net/naruto_Mr/article/details/48239357

    1.创建web工程,导入spring依赖包与mybatis依赖包,还需要mybatis-spring.jar,这是spring连接mybatis的桥梁.下载地址:http://mvnrepository.com/artifact/org.mybatis/mybatis-spring

    2.配置文件

    1)web.xml配置,指定spring配置文件名为config/spring-cfg.xml

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app version="2.4"   
    3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
    7.     <!-- spring入口 -->  
    8.     <!-- 自动加载spring配置文件WEB-INF/applicationContenxt.xml -->  
    9.     <listener>  
    10.          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    11.     </listener>  
    12.     <!-- 修改spring配置文件路径 -->  
    13.     <context-param>  
    14.          <param-name>contextConfigLocation</param-name>  
    15.          <param-value>WEB-INF/classes/config/spring-cfg.xml</param-value>  
    16.     </context-param>  
    17. </web-app>  


    2)spring-cfg.xml配置

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans  
    3.     xmlns="http://www.springframework.org/schema/beans"    
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
    5.     xmlns:tx="http://www.springframework.org/schema/tx"    
    6.     xmlns:context="http://www.springframework.org/schema/context"      
    7.     xsi:schemaLocation="http://www.springframework.org/schema/beans     
    8.     http://www.springframework.org/schema/beans/spring-beans-3.2.xsd     
    9.     http://www.springframework.org/schema/tx     
    10.     http://www.springframework.org/schema/tx/spring-tx-3.2.xsd    
    11.     http://www.springframework.org/schema/context    
    12.     http://www.springframework.org/schema/context/spring-context-3.2.xsd">  
    13.     <import resource="classpath:config/spring-mybatis.xml"/>  
    14.     <!-- 开启注解注入 -->  
    15.     <context:annotation-config></context:annotation-config>  
    16.     <context:component-scan base-package="com.skymr.mybatis.dao"></context:component-scan>  
    17.     <context:component-scan base-package="com.skymr.mybatis.service"></context:component-scan>  
    18. </beans>  

    引用mybatis的spring配置文件,开启自动扫描功能,扫描dao层与service层.

    3)spring-mybatis.xml配置

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans  
    3.     xmlns="http://www.springframework.org/schema/beans"  
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
    6.     <!-- 数据源 -->  
    7.     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    8.         <!-- 这个属性driverClassName为什么在DriverManagerDataSource及父类中找不到呢 -->  
    9.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
    10.         <property name="url" value="jdbc:mysql://127.0.0.1:3306/website"/>  
    11.         <property name="username" value="root" />  
    12.         <property name="password" value="root" />  
    13.     </bean>  
    14.       
    15.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    16.         <property name="basePackage" value="com.skymr.mybatis.dao"></property>  
    17.         <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>  
    18.     </bean>  
    19.       
    20.     <!-- sessionFactory配置 -->  
    21.     <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    22.         <property name="dataSource" ref="dataSource" />  
    23.         <property name="mapperLocations" value="classpath:com/skymr/mybatis/mappers/*.xml"/>  
    24.         <property name="configLocation" value="classpath:config/mybatis-config.xml"/>  
    25.     </bean>  
    26. </beans>  


    首先是配置数据源;

    再配置了个MapperScannerConfigurer,这个是什么用的呢?

    在Service的实现层中,要使用到dao层的实现层的实例,但是mybatis中是没有dao层实现层的啊,怎么注入到Service中呢,我想MapperScannerConfiger就是解决这个问题的,它是将mybatis自己对dao层的实例化后的实例注入到spring容器中,我们就可以取出后使用.

    最后配置了SqlsessionFactory,指定mapper文件路径与mybatis的另一些配置.

    3)mybatis-config.xml配置

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    3. <configuration>  
    4.     <typeAliases>  
    5.         <!-- 别名配置,方便书写 -->  
    6.         <package name="com.skymr.mybatis.model"/>  
    7.     </typeAliases>  
    8. </configuration>  


    只是定义别名而已.

    3.分层

    1).Model层

    [html] view plain copy
     
    1. package com.skymr.mybatis.model;  
    2.   
    3. public class User {  
    4.   
    5.     private int id;  
    6.       
    7.     private String userName;  
    8.       
    9.     private String password;  
    10.   
    11.     public int getId() {  
    12.         return id;  
    13.     }  
    14.   
    15.     public void setId(int id) {  
    16.         this.id = id;  
    17.     }  
    18.   
    19.     public String getUserName() {  
    20.         return userName;  
    21.     }  
    22.   
    23.     public void setUserName(String userName) {  
    24.         this.userName = userName;  
    25.     }  
    26.   
    27.     public String getPassword() {  
    28.         return password;  
    29.     }  
    30.   
    31.     public void setPassword(String password) {  
    32.         this.password = password;  
    33.     }  
    34.       
    35.     public String toString(){  
    36.         return id+"," + userName+","+password;  
    37.     }  
    38. }  


    2)Dao层

    [html] view plain copy
     
    1. package com.skymr.mybatis.dao;  
    2.   
    3. import com.skymr.mybatis.model.User;  
    4.   
    5. public interface UserDao {  
    6.   
    7.     public User login(String userName, String password);  
    8. }  

    3)mapper层,UserMapper.xml

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
    3. <mapper namespace="com.skymr.mybatis.dao.UserDao">  
    4.     <select id="login" resultType="User">  
    5.         select * from mybatis_user where userName=#{param1} and password=#{param2}  
    6.     </select>  
    7. </mapper>   


    4).Service层

    [html] view plain copy
     
    1. package com.skymr.mybatis.service;  
    2.   
    3. import com.skymr.mybatis.model.User;  
    4.   
    5. public interface UserService {  
    6.   
    7.       
    8.     public User login(String userName, String password);  
    9. }  
    [html] view plain copy
     
    1. package com.skymr.mybatis.service.impl;  
    2.   
    3. import javax.annotation.Resource;  
    4.   
    5. import org.springframework.stereotype.Repository;  
    6.   
    7. import com.skymr.mybatis.dao.UserDao;  
    8. import com.skymr.mybatis.model.User;  
    9. import com.skymr.mybatis.service.UserService;  
    10. @Repository("userService")  
    11. public class UserServiceBean implements UserService{  
    12.     @Resource  
    13.     private UserDao userDao;  
    14.       
    15.     public User login(String userName, String password) {  
    16.         return userDao.login(userName, password);  
    17.     }  
    18.   
    19. }  

    4.测试

    [html] view plain copy
     
      1. package com.skymr.mybatis.service;  
      2.   
      3. import org.junit.Test;  
      4. import org.springframework.context.ApplicationContext;  
      5. import org.springframework.context.support.ClassPathXmlApplicationContext;  
      6.   
      7. import com.skymr.mybatis.model.User;  
      8.   
      9. public class LoginTest {  
      10.   
      11.     @Test  
      12.     public void loginTest(){  
      13.          ApplicationContext context= new ClassPathXmlApplicationContext("/config/spring-cfg.xml");  
      14.          UserService service =(UserService) context.getBean("userService");  
      15.          User user = service.login("aaaa", "aaaa");  
      16.          System.out.println(user);     
      17.     }  
      18. }  
  • 相关阅读:
    sql sever外网映射后链接,端口号用,号区分
    zentao事故,慢sql查询
    阿里云镜像加速器配置
    对产品不同指标维度分组求和
    burp抓包https请求
    mysql获取当天,昨天,本周,本月,上周,上月的起始时间
    查询不同sql,插入同一个sheet
    按分类查找缺陷并输出到EXCEL
    循环导出所有行和列
    查询某字段等于当天的日期sql:select count(*) from zt_bug WHERE date_format(openedDate,'%Y-%m-%d')=date_format(NOW(),'%Y-%m-%d')
  • 原文地址:https://www.cnblogs.com/xywq/p/7325376.html
Copyright © 2011-2022 走看看