mybatis中sqlsession 发送sql和 mapper接口发送的利弊

举个例子

Role  role -=(Role)SqlSesion.selectone("com.Dao.RoleMapper.getRole",1);

selectone表示查询只返回一个对象,参数是一个String对象 和一个object对象1

Sting对象定义了一条sql,mybatis 会找到相对应的sql

Role  role -=(Role)SqlSesion.selectone("getRole",1);

如果mybatis中有id是getrole的也可以简写

这是mybatis 的前身ibatis留下的方式

用Mapper接口发送sql 

Rolemapper rolemapper =sqlSession.getmapper(Rolemapper.clss);

Role role=rolemapper.getrole();

mpapper接口可以擦除sqlsession带来的功能性代码,提高可读性

以下是Spring采用接口编程的配置方式

<!-- 注册 jdbc.properties方法  2 :context方式注册   -->
       <context:property-placeholder location="classpath:jdbc.properties"/>
<!--   第二步   注册  dataSource  用来 进行 数据库连接   的 数据  -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driver}"></property>
<property name="jdbcUrl" value="${url}"></property>
<property name="user" value="${user}"></property> <!-- 此处的 value 值在使用 上面 第二种 jdb.properties 文件加载方式的情况下必须为 user  -->
<property name="password" value="${password}"></property>
</bean> 
        <bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 数据源的获取 -->
        <property name="dataSource" ref="dataSource"></property>
      <property name="mapperLocations" value="classpath:com/Dao/xml/*.xml"></property>
       <!--<property name="ConfigLocation" value="classpath:mybatis-config.xml" > </property> -->
        </bean> 
        <!-- 事务管理器配置数据源事物  使用注解的方式-->
        <bean id="transactionManager"   class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
        <!-- 使用注解定义事物 -->
        <tx:annotation-driven transaction-manager="transactionManager" />
        <!-- 指定扫描接口的哪个包 采用自动扫描方式创建Mapper bean  多个mapper接口的配置-->
       <bean  class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.Dao"/>
<!-- 定义 SqlSessionFactory  bean名称 不写的话 mybatis会自动定义规则为类的得一个字母小写-->
 <!-- <property name="SqlSessionFactory" value="org.apache.ibatis.session.SqlSessionFactory;" ></property> -->
    <property name="annotationClass" value=" org.springframework.stereotype.Repository"  ></property>
 </bean>

猜你喜欢

转载自blog.csdn.net/m0_37942145/article/details/78601052