Spring,SpringBoot整合Mybatis快速入门

Spring整合Mybatis

版本对应

1,pom文件依赖

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>2.0.4</version>
</dependency>
 <!--c3p0 连接池 -->
<dependency>
  <groupId>c3p0</groupId>
  <artifactId>c3p0</artifactId>
  <version>0.9.1.2</version>
</dependency>

2,Spring 的 XML 文件配置 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
</bean>

或者也可以使用java类来配置sqlSessionFactory,和上面xml配置等效

@Bean
public SqlSessionFactory sqlSessionFactory() {
  SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
  factoryBean.setDataSource(dataSource());
  return factoryBean.getObject();
}

 3,配置数据源(也是配置在Spring的xml配置文件中)

<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
        <value>oracle.jdbc.driver.OracleDriver</value>
    </property>
    <property name="url">
        <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value>
    </property>
    <property name="username">
        <value>test</value>
    </property>
    <property name="password">
        <value>test</value>
    </property>
</bean>   

 还可以配置各种连接池例如

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value=" oracle.jdbc.driver.OracleDriver "/>
    <property name="jdbcUrl" value=" "/>
    <property name="user" value=" "/>
    <property name="password" value=" "/>
</bean>  
//此处连接池还有一些其他的属性配置这里就不一一写出来

4,创建mapper类和对应的mapper.xml文件

public interface GroupDao {

    void addGroup(CheckGroup group);

    void setGroupAndItemId(HashMap<String, Integer> map);

    Page<CheckGroup> findPage(String queryString);

    CheckGroup findById(Integer id);

    List<Integer> findItemIdsByGroup(Integer id);

    void deleteAssociation(Integer groupId);

    void updataGroup(CheckGroup checkGroup);

    void deleteGroupById(Integer groupId);

    List<CheckGroup> findAll();
}
<?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="cn.chen.dao.GroupDao">
    <insert id="addGroup" parameterType="CheckGroup">
        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into t_checkgroup(code,name,sex,helpCode,remark,attention)
        values
        (#{code},#{name},#{sex},#{helpCode},#{remark},#{attention})
    </insert>

<!--    设置组和项的连接-->
    <insert id="setGroupAndItemId" parameterType="hashmap">
        insert into t_checkgroup_checkitem(checkgroup_id,checkitem_id)
      		values
      	(#{groupId},#{itemId})
    </insert>

<!--    查询分页-->
    <select id="findPage" parameterType="String" resultType="CheckGroup">
        select * from t_checkgroup
        <if test="value != null and value.length > 0">
            where code like #{value} or name like #{value}
        </if>
    </select>
<!--    根据id进行查询单个group-->
    <select id="findById" parameterType="int" resultType="CheckGroup">
        select * from t_checkgroup where id = #{value}
    </select>
<!--    查找组包含的检查项-->
    <select id="findItemIdsByGroup" parameterType="int" resultType="int">
        select checkitem_id from t_checkgroup_checkitem where checkgroup_id = #{value}
    </select>
<!--    删除组和项关系-->
    <delete id="deleteAssociation" parameterType="int">
        delete from t_checkgroup_checkitem where checkgroup_id = #{value}
    </delete>
<!--    更新组信息-->
    <update id="updataGroup" parameterType="CheckGroup">
        update t_checkgroup
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="sex != null">
                sex = #{sex},
            </if>
            <if test="code != null">
                code = #{code},
            </if>
            <if test="helpCode != null">
                helpCode = #{helpCode},
            </if>
            <if test="attention != null">
                attention = #{attention},
            </if>
            <if test="remark != null">
                remark = #{remark},
            </if>
        </set>
        where id = #{id}
    </update>
    <delete id="deleteGroupById" parameterType="int">
        delete from t_checkgroup where id = #{value}
    </delete>
<!--    查找所有检查组-->
    <select id="findAll" resultType="CheckGroup">
        select * from t_checkgroup
    </select>
</mapper>

xml文件的namespace是对应的mapper类的文件路径,id则为mapper类的方法名,resultType为返回值类型 

注意mapper接口类和对应xml文件需要配置java和resources路径下,最后打包完成才可以放到同一个目录下

5,在配置文件中写入包扫描路径

    <!--包扫描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.chen.dao"/>
    </bean>

这样spring才知道哪里是你要扫描的包。

 

SpringBoot整合Mybatis

springboot相对spring来说步骤更为简洁

1,也是引入依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

2,在springboot配置文件中写入数据库连接信息

此处配置文件为springboot支持的yml文件非spring的xml文件

spring:
  profiles:
    active: dev #配置文件版本
  application:
    name: chenhaixin #服务名称
  datasource: # 数据库连接四个属性
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/BYtest?characterEncoding=utf-8
    username: root
    password: 123456

3,编写mapper类和mapper对应的xml文件

@Repository
public interface UserMapper {
    User findById(@Param("UserId")Integer userId,@Param("UserName")String username);
}
<?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="cn.chen.mapping.UserMapper">
    <select id="findById" resultType="cn.chen.entity.User" >
        select UserId,UserName from User where UserId = #{UserId} and UserName=#{UserName}
    </select>
</mapper>

文件路径也是要统一

4,配置mapper包扫描

@MapperScan("cn.chen.mapping")
@SpringBootApplication
public class BYSpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(BYSpringBootApplication.class,args);
    }
}

 在springboot启动类上打上MapperScan注解,路径为你mapper类的路径,这样springboot和mybatis就整合完成啦

5,配置连接池

springboot配置连接池也是非常简单,只要引入依赖如

        <!-- 阿里系的Druid依赖包 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.9</version>
        </dependency>
        <!-- Druid 依赖 log4j包 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
spring:
  profiles:
    active: dev #配置文件版本
  application:
    name: chenhaixin #服务名称
  datasource: # 数据库连接四个属性
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://116.85.35.70:3306/BYtest?characterEncoding=utf-8
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

springboot文件中加入datasource信息就ok咯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值