Spring 四、spring-mybaits 數據庫控制(一)

mybaits的基本使用

導入相關包

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.2</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.17</version>
</dependency>

配置文件

主要配置文件中的參數

  1. mappers配置(必填)
  2. environments(必填)
  3. settiong配置(非必要)
  4. properties加載(非必要)
  5. 別名配置(非必要)

配置模板(以阿里Durid鏈接池爲例)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--加載 property-->
    <context:property-placeholder location="classpath:config/db.properties"/>

    <!--自動掃描包-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--            初始化 配置數據庫連接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--  3 加載主配置文件-->
        <property name="configLocation" value="classpath:mybaits-config.xml"/>
        <!-- 4 註冊 所有的mapper.xml-->
        <property name="mapperLocations" value="classpath:mappers/**/*.xml" />
    </bean>

    <!-- 5  註冊  註冊的Mapper.java -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.qf.ssm.mapper"/>
    </bean>


    <!--     2 配置 druid    -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">

        <property name="url" value="${db.url}" />
        <property name="username" value="${db.username}" />
        <property name="password" value="${db.password}" />

        <!-- 常用配置  大量的數據庫連接超時的 適當的增加 -->
        <property name="maxActive" value="20" />
        <property name="minIdle" value="1" />
        <property name="initialSize" value="1" />

        <property name="filters" value="stat" />
        <property name="maxWait" value="60000" />

        <property name="timeBetweenEvictionRunsMillis" value="60000" />
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

        <property name="poolPreparedStatements" value="true" />
        <property name="maxOpenPreparedStatements" value="20" />

        <property name="asyncInit" value="true" />
    </bean>
</beans>

配置連接池驅動(以阿里Durid)

db.username=root
db.password=root
db.url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

映射使用

在mapper層寫出相應的數據庫操作接口

public interface ShopMapper {

    public List<Shop> findShopbyCartId(@Param("shop_id") int shopId);
}

@Param註解

用於mapper.xml中調用

在mapper實現層寫xml文件映射

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qf.ssm.mapper.ShopMapper">

    <select id="findShopbyCartId" resultType="com.qf.ssm.entity.Shop">
        SELECT shop_id, title, name, price, old_price, img, num, create_date, status FROM  shop WHERE shop_id = #{shop_id}
    </select>
</mapper>

SQL映射文件的幾個元素

cache – 給定命名空間的緩存配置。

cache-ref – 其他命名空間緩存配置的引用。

resultMap – 是最複雜也是最強大的元素,用來描述如何從數據庫結果集中來加載對象。

sql – 可被其他語句引用的可重用語句塊。

insert – 映射插入語句

update – 映射更新語句

delete – 映射刪除語句

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章