课时13:多环境切换、注解方式与增删改返回值问题

.1)多环境切换

  1.配置properties

#mysql的配置环境
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/ssm
mysql.username=root
mysql.password=root

#oracle的配置环境  这里需要自己动手改一下  改成上面的格式
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>

  2.配置主配置文件环境

 <environments default="envMysql">
<!--        mysql配置环境-->
        <environment id="envMysql">
<!--                配置事务-->
            <transactionManager type="JDBC">
            </transactionManager>
<!--            配置数据库连接信息-->
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}"/>
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>

<!--        oracle环境配置-->
        <environment id="envOracle">
            <!--                配置事务-->
            <transactionManager type="JDBC">
            </transactionManager>
            <!--            配置数据库连接信息-->
            <dataSource type="POOLED">
                <property name="driver" value="${oracle.driver}"/>
                <property name="url" value="${oracle.url}"/>
                <property name="username" value="${oracle.username}"/>
                <property name="password" value="${oracle.password}"/>
            </dataSource>
        </environment>
    </environments>

<!--    配置数据库支持类-->
    <databaseIdProvider type="DB_VENDOR">
            <property name="MySQL" value="mysql"/>
            <property name="Oracle" value="oracle"/>
    </databaseIdProvider>

    2.1 通过default来切换环境

    2.2 通过支持类来配置支持哪些数据库

  3.编写不同数据库sql

    3.1 列如oracle:rownum mysql:limit

  <select id="selectStudentById" resultType="student" parameterType="Integer" databaseId="oracle">
        select * from student where stuno=#{stuno}
    </select>   
    <select id="selectStudentById" resultType="student" parameterType="Integer" databaseId="mysql">
        select * from student where stuno=#{stuno}
    </select>

      3.1.1通过databaseId来找寻主配置里面配置的支持类别名

      3.1.2 .select标签两个id可以一样,当你的环境时oracle的时候就是执行oracle的id里面的sql,当你的环境时mysql的时候就是执行mysql的id里面的sql

2.)注解方式开发

  1.推荐使用xml开发(而注解开发适用于一些小项目)

  2.如何使用注解开发

    2.1 配置主文件的mapper标签 通过class来映射接口 为了是让程序知道你的sql语句是存在接口中

<mapper class="org.hbz.dao.IStudentDao"></mapper>

    2.2无论是注解还是xml都可以可以一劳永逸的方式直接填写包名存在哪里 (批量引入) 以下的语句两种方式都兼容

 <package name="org.hbz.dao"/>

  3. 将sql语句写在接口的方法的上面

@Select("select * from student where stuNo=#{stuNo}")
    Student queryStudentByNo(int stuNo);

.3)增删改的返回值问题

  1.返回值可以是void ,Integer,Long,Boolean

  2.如何操作?只需要在接口的方法修改返回值

 

posted @ 2020-03-10 19:56  何邦柱  阅读(172)  评论(1编辑  收藏  举报