zoukankan      html  css  js  c++  java
  • Spring整合Mybatis

    1、在pom文件中配置需要依赖的jar

    2、搭建环境,创建dao和 实体类书写三个配置文件
    目录结构如图所示:


    3、jdbc.properties配置:

    driverName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/项目名
    username=root
    password=123456

    4、spring-mybtais.xml配置有

    <!-- 第一步:引入properties配置文件,用util标签不要忘了配置头文件-->
    <util:properties id="prop" location="jdbc.properties"></util:properties>
    <!--第二步: 数据源配置-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="#{prop.driverName}"/>
    <property name="url" value="#{prop.url}"/>
    <property name="username" value="#{prop.username}"/>
    <property name="password" value="#{prop.password}"/>
    </bean>
    <!--第三步: 通过Spring 来获取sqlSessionFactory实例,让Spring根据该工出厂实例获取sqlSession -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--配置连接数据库数据源,ref的值 和上面相对应-->
    <property name="dataSource" ref="dataSource"/>
    <!--配置mapper文件所在位置-->
    <property name="mapperLocations" value="classpath:/mapper/*Mapper.xml"/>
    </bean>
    
    <!--第四步 生成单个代理对象 -->
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> 
    <property name="mapperInterface" value="cn.mybatis.dao.IUserDao" /> <property 
    name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean>

    注意 这样子使用有一个问题 就是每次创建一个代理对象就要写一次

    <!-- 第五步: 再将sqlsessionTemplate的bean实例通过注解扫描的方式注入到service实现类中 -->
    <context:component-scan base-package="cn.mybatis.service"/>

    5、Service的实现类:

    @Service("userService1")
    public class UserServiceImpl1 implements UserService{
    @Autowired
    private UserDAO userDAO;
    public UserBean getUserById(String userId) {
    UserBean userBean=userDAO.findUserById("1001");
    return userBean;
    }
    }

    SqlSessionFactoryBean的简介
    通过SqlSessionFactoryBean 还可以定义一些属性来指定Mybatis 框架的配置信息,常用属性如下:
    1、dataSource 指定连接数据库的数据源(必要属性);
    2、mapperLocations 指定Mapper.xml文件的位置
    3、configLocation 用来指定Mybatis的配置文件的位置,如果指定该属性,则会以该配置文件内容来构建对应的SQLSessionFactoryBuilder。
    4、typeAliasesPackage 用来给包中的类注册别名,注册后可以直接使用类名,而不用使用全限定的类名(就是不用包含包名)。

    MapperScannerConfigurer配置
    使用MapperFactoryBean时,也有一个缺点,就是有一个DAO组件就需要在配置文件定义一个相对应的MapperFactoryBean,但是在实际开发中多个功能模块儿是需要多个DAO组件的,所以使用MapperFactoryBean会使配置文件变的繁琐,此时我们可以使用MapperScannerConfigurer组件批量扫描指定包下所有DAO。

    <!--使用该组件时,只需要指定一个basePackage,多个包之间可以用分号隔开-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.gok.dao"/>
    </bean>

    提示:SqlSessionFactoryBean可以不指定,会以Autowired方式注入

  • 相关阅读:
    Exception from System.loadLibrary(smjavaagentapi) java.lang.UnsatisfiedLinkError: no smjavaagentapi in java.library.path
    find ip from hostname or find hostname from ip
    SAML 2.0 Profiles--wiki
    BEA WebLogic平台下J2EE调优攻略--转载
    jvm在存储区域
    自己主动瀑布流布局和实现代码加载
    java 它 引用(基本类型的包装,构造函数和析构函数c++不同)
    动态规划——最长非降顺序排列
    3.Swift翻译教程系列——Swift基础知识
    ffmpeg.c简单的结构功能分析(平局)
  • 原文地址:https://www.cnblogs.com/ericz2j/p/11109183.html
Copyright © 2011-2022 走看看