Spring(四)Spring整合Mybatis

xiaoxiao2021-02-28  86

版本spring4+MyBatis3+JDK1.8 Spring环境的配置请参考前面文章,本文参考代码将会在资源中上传

jar包

主要包括:数据连接池(dbpc)+io+pool+Spring中jdbc+tx+Spring对MyBatis的支持包+myBatis+数据库连接jar包。

application.xml配置文件 整合时将连接数据库的信息以javaBean的形式配置到该文件中

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" 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-2.5.xsd"> <!-- 配置数据源,destroy-method:关闭数据库的连接 --> <bean id="mydataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1/mydatabase" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <!-- 配置mybatis自身的信息,都归spring管理 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="mydataSource" /> <!-- 配置entity --> <property name="typeAliasesPackage" value="com.spring.entity" /> <!-- 配置映射xml文件,注意路径的写法 --> <property name="mapperLocations" value="classpath*:com/spring/dao/*Mapper.xml" /> </bean> <!-- 配置dao组件,value是dao层的包路径 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.spring.dao" /> </bean> <!-- 配置服务层组件 --> <bean id="deptServices" class="com.spring.service.DeptServices"/> </beans>

Dao层 1.接口:包含一个返回值为list的查询方法

package com.spring.dao; import java.util.List; import com.spring.entity.Dept; public interface DeptMapper { public List<Dept> findDept(); }

2.对应的映射文件

<?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.spring.dao.DeptMapper"> <select id="findDept" resultMap="deptMapper"> select * from dept </select> <resultMap type="Dept" id="deptMapper"> <id property="id" column="id" /> <result property="dname" column="dname" /> </resultMap> </mapper>

Service层

创建一个类,并将其通过注解标记为service,并调用dao层的方法

package com.spring.service; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.spring.dao.DeptMapper; import com.spring.entity.Dept; @Service public class DeptServices { @Resource(name="deptMapper") private DeptMapper deptMapper; public List<Dept> findDept(){ return deptMapper.findDept(); } }

实体类

创建一个类名为Dept的类,包含Integer的id和String类型的dname、dnumber、dloc以及他们的get和set方法。

控制层 1.需要的工具类

package com.spring.until; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.google.gson.Gson; public class CommController { public WebApplicationContext getWebApplicationContext(HttpServletRequest request){ return WebApplicationContextUtils.getWebApplicationContext(request.getServletContext()); } public void toJson(HttpServletResponse response,Object obj) throws IOException{ response.setCharacterEncoding("utf-8"); PrintWriter out=response.getWriter(); out.print(new Gson().toJson(obj)); out.flush(); out.close(); } }

2.测试整合环境的控制器类

package com.spring.controller; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.spring.service.DeptServices; import com.spring.until.CommController; @Controller @RequestMapping("deptController") public class DeptController extends CommController{ private DeptServices deptServices; @RequestMapping("findDept") public void findDept(HttpServletRequest request,HttpServletResponse response) throws IOException{ deptServices=(DeptServices) getWebApplicationContext(request).getBean("deptServices"); toJson(response, deptServices.findDept()); } }

注意需要在web.xml中将配置文件添加进去。 页面一个链接即可 <a href="<%=request.getContextPath()%>/deptController/findDept.action">测试spring整合MyBatis</a>

转载请注明原文地址: https://www.6miu.com/read-71945.html

最新回复(0)