zoukankan      html  css  js  c++  java
  • 课时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.如何操作?只需要在接口的方法修改返回值

     

  • 相关阅读:
    mysql不停库不锁表在线主从配置
    MySQL5.7不停机不锁表主从同步实战
    另类 k8s 集群灾难恢复方法:用 master 服务器镜像恢复出新集群
    我在新西兰卖挖掘机之续篇十八------坚持的秘诀(坚持的秘诀就2条,第一是初始摩擦力要足够小(开头不能太困难,时间不能太久);第二是坚持的事情能够不断地给你提供某种真实的好处)(其实就是正反馈,加上一点点兴趣)
    分布式系统中那些不靠谱任务-CAP 到底是什么
    分布式系统架构中关于切分数据库事务的 ACID 性质的可用性与性能-BASE 理论和CAP 定理
    SSO协议-SAML和OAuth2
    领域建模
    基于 Docker 容器Net Core微服务部署 Nginx 集群架构
    消息队列和分布式锁
  • 原文地址:https://www.cnblogs.com/thisHBZ/p/12458174.html
Copyright © 2011-2022 走看看