spring与mybatis的整合(简单、基础)

在这里运用一下spring与mybatis框架的整合应用,初步了解配置
首先创建实体类,引用lombok所以不需要在手动写实体类的有参无参和toString,只需要配置以下的三个注解即可

package com.gtl.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
    private Integer id;
    private String name;
    private Double price;
    private String author;
    private Integer sales;
    private Integer stock;
    private String createTime;
}

DAO层mapper接口 创建两个方法

package com.gtl.mapper;

import com.gtl.pojo.Book;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
public interface BookMapper {
	//查询全部
    List<Book> findAll();
	//更具Id查询
    Book  findById(Integer id);
}

service层

package com.gtl.service;

import com.gtl.pojo.Book;

import java.util.List;

public interface BookService {
    List<Book> findAll();

    Book  findById(Integer id);
}

实现service层

package com.gtl.service.impl;

import com.gtl.mapper.BookMapper;
import com.gtl.pojo.Book;
import com.gtl.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookMapper bookMapper;
    @Override
    public List<Book> findAll() {
        return bookMapper.findAll();
    }

    @Override
    public Book findById(Integer id) {
        return bookMapper.findById(id);
    }
}

配置连接数据库(8.0mysql)

mysql.driverClass=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/数据库名?useSSL=true&serverTimezone=UTC
mysql.username=用户名
mysql.password=密码

配置mybatis的核心配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!--加载资源文件-->
    <properties resource="classpath:jdbc.properties"/>
	<!--自定义别名-->
    <typeAliases>
        <package name="com.gtl.pojo"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!--德鲁伊数据源-->
            <dataSource type="com.mybatisG.config.DruidDataSourceFactory">
                <property name="driverClassName" value="${mysql.driverClass}"/>
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <package name="com.gtl.mapper"/>
    </mappers>
</configuration>

创建BookMapper.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">
<!--namespace="com.mybatis.mapper.BookMapper" 传递接口的映射(命名空间,对应接口的全限定名)-->
<mapper namespace="com.gtl.mapper.BookMapper">
    <resultMap id="baseResultMap" type="book">
        <id column="id" property="id" />
        <result column="author" property="author" />
        <result column="createTime" property="createTime" />
        <result column="name" property="name" />
        <result column="price" property="price" />
        <result column="sales" property="sales" />
        <result column="stock" property="stock" />
    </resultMap>

    <select id="findAll" resultMap="baseResultMap">
        select * from web_book
    </select>

    <select id="findById" parameterType="integer" resultMap="baseResultMap">
        select * from web_book where id = #{id}
    </select>
</mapper>

配置spring与mybatis整合的配置文件

<?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" xmlns:tx="http://www.springframework.org/schema/tx"
       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 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!--spring与Mybatis的整合-->
    <!--加载数据源配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties" />
    <!--开启注解扫描-->
    <context:component-scan base-package="com.gtl.service" >
        <!--指定要扫描的包-->
        <context:include-filter type="aspectj" expression="com.gtl.service.impl.*.*"/>
    </context:component-scan>
    <!--配置数据源.这里使用的是Druid数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" >
        <property name="driverClassName" value="${mysql.driverClass}" />
        <property name="url" value="${mysql.url}" />
        <property name="username" value="${mysql.username}" />
        <property name="password" value="${mysql.password}" />
    </bean>

    <!--事务管理-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!--开启声明式事务-->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!--Mybatis与Spring整合配置-->
    <bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!--扫描pojo包,指定别名-->
        <property name="typeAliasesPackage" value="com.gtl.pojo" />
        <!--扫描映射文件-->
        <property name="mapperLocations" value="classpath:com/gtl/mapper/*.xml" />
    </bean>
    <!--配置扫描器,将Mybatis的dao接口实现放入IOC容器中-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
        <!--扫描Dao包将其注入到容器中-->
        <property name="basePackage" value="com.gtl.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sessionFactoryBean" />
    </bean>
</beans>

web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
     http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--统一交给SpringMVC进行处理-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:SpringMVC.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <!--接收所有格式的请求-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

创建测试类测试

package com.gtl.test;

import com.gtl.pojo.Book;
import com.gtl.service.BookService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class springMybatis {
    @Autowired
    private BookService bookService;
    @Test
    public void FindAllTest(){
        List<Book> bookList = bookService.findAll();
        for (Book book : bookList){
            System.out.println(book);
        }
    }
    @Test
    public void findByIdTest(){
        Book book = bookService.findById(11);
        System.out.println(book);
    }
}

此文章仅当笔记查看使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java.小小白

生活不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值