在这里运用一下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);
}
}
此文章仅当笔记查看使用