其乐后台管理系统(三)--整合mybatis框架详情(SSM三大框架搭建成功)

原创
2020/03/17 17:24
阅读数 1K

前言:在此之前,我给大家讲到了三大框架中spring和springmvc的搭建和整合,因为内容过多,于是我分成了两部分;今天给大家讲的是mybatis的整合以及spring和mybatis的整合!!!

其乐蛋糕店后台管理系统 地址
Github--其乐后台管理系统源码 https://github.com/XINGGou/qile
其乐后台管理系统(一)--项目介绍 https://my.oschina.net/u/4115134/blog/3193902
其乐后台管理系统(二)--整合三大框架(spring+springmvc+mybatis) https://my.oschina.net/u/4115134/blog/3195801
其乐后台管理系统(三)--整合mybatis框架(三大框架搭建成功) https://my.oschina.net/u/4115134/blog/3196768
其乐后台管理系统(四)--门店管理模块 https://my.oschina.net/u/4115134/blog/3207632
其乐后台管理系统(五)--订单管理系统 https://my.oschina.net/u/4115134/blog/3211989

整合mybatis框架

1.在pom.xml文件中引入mybatis及相关依赖包

<!-- 整合mybatis框架 -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.2.8</version>
</dependency>
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
	<version>1.2.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.32</version>
</dependency>
<!-- druid连接池 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>1.1.6</version>
</dependency>

2.在resources/mybatis目录下创建mybatis的核心配置文件:mybatis-config.xml

<?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">
    
<!-- MyBatis的全局配置文件 -->
<configuration >
	<!-- 1.配置开发环境 -->
	<environments default="develop">
		<!-- 这里可以配置多个环境,比如develop,test等 -->
		<environment id="develop">
			<!-- 1.1.配置事务管理方式:JDBC:将事务交给JDBC管理(推荐) -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- 1.2.配置数据源,即连接池方式:JNDI/POOLED/UNPOOLED -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/qiledb?characterEncoding=utf-8"/>
				<property name="username" value="root"/>
				<property name="password" value="root"/>
			</dataSource>
		</environment>
	</environments>
	
	<!-- 2.加载Mapper配置文件,路径以斜杠间隔: xx/xx/../xx.xml -->

</configuration>

3.创建实体类Door,用于封装所有的门店信息

           若需要数据库可在github上下载:https://github.com/XINGGou/qile

package com.it.pojo;

/**
 * 门店信息
 */
public class Door {
	private Integer id;	    //门店编号
	private String name;	//门店名称
	private String tel;	    //门店电话
	private String addr;	//门店地址
	
	//getter和setter方法
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	//重写toString方法
	@Override
	public String toString() {
		return "Door [id=" + id + ", name=" + name + ", tel=" + tel + ", addr=" + addr + "]";
	}
}

4.在src/main/resources/mybatis/mapper目录下创建Door的映射文件--DoorMapper.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值为对应接口的全路径 -->
<mapper namespace="com.it.mapper.DoorMapper">
	<!-- 1.查询所有门店信息,id值为对应接口中方法的名字
		resultType指定将查询的结果封装到哪个pojo对象中
	 -->
	<select id="findAll" resultType="com.it.pojo.Door">
		select * from tb_door
	</select>
	
	

</mapper>

5.在mybatis的全局配置文件(mybatis-config.xml)中引入DoorMapper.xml

	<!-- 2.加载Mapper配置文件,路径以斜杠间隔: xx/xx/../xx.xml -->
	<!-- 配置映射文件 -->
	<mappers>
		<mapper resource="mybatis/mapper/DoorMapper.xml"/>
	</mappers>

6.创建com.it.mapper.DoorMapper接口,提供findAll方法

package com.it.mapper;

import java.util.List;
import com.it.pojo.Door;
/**
 * DoorMapper接口 
 * 声明增删改查方法,对门店信息进行操作
 */
public interface DoorMapper {
	/**
	 * 1.查询所有门店信息
	 */
	public List<Door> findAll();

}

7.创建测试TestMybatis类在controller中

package com.it.controller;

import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.it.mapper.DoorMapper;
import com.it.pojo.Door;

public class TestMybatis {
	public static void main(String[] args) throws Exception {
		//1.读取mybatis-config.xml核心文件
		InputStream in = Resources.getResourceAsStream(
				"mybatis/mybatis-config.xml");
		//2.获取SqlSessionFactory工厂
		SqlSessionFactory factory = 
				new SqlSessionFactoryBuilder()
				.build(in);
		//3.获取SqlSession对象
		SqlSession session = factory.openSession();
		
		//4.获取DoorMapper接口的实例
		DoorMapper mapper = session.getMapper(DoorMapper.class);
		//5.调用findAll方法查询所有门店信息
		List<Door> list = mapper.findAll();
		//6.遍历所有门店信息
		for(Door door : list){
			System.out.println(door);
		}
	}
}

执行结果为:

在这里插入图片描述

当显示出结果时,说明mybatis整合成功,接下来将整合spring和mybatis

整合spring和mybatis

1.修改mybatis-config.xml文件,将所有的配置移除(废弃mybatis-config.xml)

<?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">
    
<!-- MyBatis的全局配置文件 -->
<configuration >
	<!-- 1.配置开发环境 -->
	<!-- 1.1.配置事务管理方式:JDBC:将事务交给JDBC管理(推荐) -->
	<!-- 1.2.配置数据源,即连接池方式:JNDI/POOLED/UNPOOLED -->
	<!-- 2.加载Mapper配置文件,路径以斜杠间隔: xx/xx/../xx.xml -->
	
</configuration>

2.在applicationContext.xml中配置druid数据库连接池

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
	
	<!-- 1.加载jdbc.properties文件的位置 -->
	<context:property-placeholder location="classpath:jdbc.properties"/>
	
	<!-- 2.配置druid连接池 ,id是固定值,class是druid连接池类的全路径 -->
	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
		<!-- 配置连接数据库的基本信息 -->
		<property name="driverClassName" value="${db.driverClassName}"></property>
		<property name="url" value="${db.url}"></property>
		<property name="username" value="${db.username}"></property>
		<property name="password" value="${db.password}"></property>
	</bean>
	
	<!-- 3.整合spring和mybatis框架	
		将SqlSession等对象的创建交给Spring容器
		id值(sqlSessionFactory)是固定值
	 -->
	<bean id="sqlSessionFactory" 
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 3.1.指定mybatis核心配置文件的位置 -->
		<property name="configLocation" 
				value="classpath:mybatis/mybatis-config.xml"></property>
		<!-- 3.2.配置连接池(数据源) ref指向连接池bean对象的id值 -->
		<property name="dataSource" ref="dataSource"></property>
		<!-- 3.3、扫描所有的 XxxMapper.xml映射文件,读取其中配置的SQL语句 -->
		<property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
	</bean>
	
	<!-- 4、定义mapper接口扫描器 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 扫描所有XxxMapper接口,将接口实例的创建交给spring容器 -->
		<property name="basePackage" 
			value="com.it.mapper"/>
	</bean>
	
	<!-- 5.配置需要扫描的包(service层):spring自动去扫描 base-package下的类,
		如果扫描到的类上有 @Controller、@Service、@Component等注解,
		将会自动将类注册为bean(即由spring创建实例)
	 -->
	<context:component-scan 
		base-package="com.it.service">
	</context:component-scan>

</beans>

3.在resources目录下创建jdbc.properties文件,

db.driverClassName=com.mysql.jdbc.Driver
db.url=jdbc:mysql:///qiledb?characterEncoding=utf-8
db.username=root
db.password=root

4.在controller中,创建TestSSM类测试(搭建好的spring/springmvc/mybatis环境)是否成功运行

package com.it.controller;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.it.mapper.DoorMapper;
import com.it.pojo.Door;


/** 测试类:测试SSM开发环境 */
@Controller /* 这个注解表示当前类属于Controller层代码 */
public class TestSSM {
	
	/** 自动装配:由spring自动为属性赋值(对象)  */
	@Autowired
	DoorMapper doorMapper;
	
	@RequestMapping("/testssm")
	public String testSSM(){
		//1.调用findAll方法查询所有门店信息
		List<Door> list = doorMapper.findAll();
		//2.遍历所有门店信息
		for(Door door : list){
			System.out.println(door);
		}
		return "test";
	}
}

在加载完成后,输入/testssm

结果图:

在这里插入图片描述

最后,SSM(spring+springmvc+mybatis)框架搭建完成,之后将开始项目的编写,请稍后!!!

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部