91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis實戰總結

發布時間:2020-06-23 21:14:57 來源:網絡 閱讀:340 作者:棲木之地 欄目:編程語言

項目實戰使用的技術是spring boot ,mybatis,druid

mybatis采用注解的方式,沒有采用xml的方式,省去配置的內容。

項目使用maven管理依賴包,數據庫使用mysql5.7

  1. 引入依賴:

    <!--mybatis的包-->
            <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.1</version>
    </dependency>
            <!--druid數據庫連接池的包-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
    </dependency>
            <!--mysql數據庫驅動的包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.6</version>
    </dependency>
  2. 項目配置文件
    #DB數據源配置
    spring.datasource.druid.initial-size=1
    spring.datasource.druid.min-idle=3
    spring.datasource.druid.max-active=20
    #配置獲取連接等待超時的時間
    spring.datasource.druid.max-wait=60000
    #配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
    spring.datasource.druid.time-between-eviction-runs-millis=60000
    #配置一個連接在池中最小生存的時間,單位是毫秒
    spring.datasource.druid.min-evictable-idle-time-millis=300000
    spring.datasource.druid.stat-view-servlet.login-username=admin
    spring.datasource.druid.stat-view-servlet.login-password=admin
    spring.datasource.druid.one.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.druid.one.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.druid.one.url=jdbc:mysql://mysql:3306/seasfood?characterEncoding=utf8&useSSL=true&serverTimezone=PRC&nullNamePatternMatchesAll=true
    spring.datasource.druid.one.username=root
    spring.datasource.druid.one.password=123456
    需要配置數據庫的地址和密碼,這個例子僅對druid做了簡單的配置,更多優化配置到druid官網查看

  3. 項目數據源配置,這里沒有讀寫分離的數據源配置,編寫一個spring配置類:

      @Configuration("DaoConfiguration")
        @EnableTransactionManagement
        public class DaoConfiguration {
            @Primary
            @Bean
            @ConfigurationProperties("spring.datasource.druid.one")
            public DataSource dataSourceOne() {
                    return DruidDataSourceBuilder.create().build();
            }
            @Bean
            public DataSourceTransactionManager dataSourceTransactionManager() {
                    return new DataSourceTransactionManager(dataSourceOne());
            }
    }
  4. 編寫一個mapper接口,必須在spring能夠掃描到的包下

    @Mapper
    public interface GoodsMapper {
            @Select("SELECT * FROM goods")
            List<GoodsEntity> selectGoods(@Param("now") Date date);
    }
  5. 在service組件中注入mapper接口即可使用

    @Autowired
    private GoodsMapper mapper;
    mapper.selectGoods();
  6. mybatis的高級用法:
    1: 動態sql語句,通過增加<script></script>來讓sql語句可以根據條件增加WHERE,AND,OR,IN等內容
    2:結果集緩存:一般不用,都是在service層做cache處理
    3:類型處理器TypeHandler:用于把一些特殊的列的值轉換成特殊的字段,例如把逗號或者其他分隔符分隔的值轉換成List
    4:攔截器:用來做一些特殊的處理,例如分頁

刪除記錄:
@Delete("DELETE FROM mytable WHERE id=#{}")
更新記錄:
@Update("UPDATE mytable SET myname=#{myname}")
插入記錄:
@Insert("INSERT INTO mytable (myfield1,myfield2) VALUES (#{var1},#{var2})

-

使用@SelectKey獲取自增主鍵的值:
@SelectKey(statement = "select max(addr_id)+1 as id from user_address", before = true, keyColumn = "id", resultType = String.class, keyProperty = "addr_id")

使用注解時,Mapper中的queryId:
使用注解的方法名作為queryId,如果方法名相同的,其中一個會以方法名作為queryId,而其他的則會以類全名加方法名作為queryId

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万年县| 朝阳区| 河东区| 江津市| 子洲县| 保靖县| 赤壁市| 铜梁县| 改则县| 隆回县| 安徽省| 商南县| 安达市| 绥江县| 固阳县| 大新县| 阿荣旗| 恩平市| 澎湖县| 全椒县| 崇明县| 鄢陵县| 梁河县| 永胜县| 尚义县| 唐山市| 襄汾县| 航空| 景东| 甘德县| 大悟县| 方城县| 凤阳县| 时尚| 腾冲县| 上思县| 沛县| 山西省| 淮滨县| 聂拉木县| 上蔡县|