javaee spring整合mybatis

案例一

包含dao层

创建maven webapp项目

maven仓库需要改为阿里云
在这里插入图片描述

引入依赖

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>testSSM</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>testSSM Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- 1.导入Spring相关的jar包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.18.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.18.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.3.18.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.3.18.RELEASE</version></dependency><!-- 导入mybatis的jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!-- 配置日志信息--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- spring 整合 mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.18.RELEASE</version></dependency></dependencies><build><resources><resource><!-- 将Mapper的映射文件拷贝出来 --><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources><finalName>testSSM</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>

spring配置文件

<?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:jdbc="http://www.springframework.org/schema/jdbc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd"><!-- 1.扫描包中的注解 --><context:component-scan base-package="com.test" /><!--导入db.properties文件--><context:property-placeholder location="classpath:db.properties" /><!--创建了数据源 --><bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${driverClass}" /><property name="jdbcUrl" value="${url}"/><property name="user" value="${user}" /><property name="password" value="${password}" /></bean><!--创建SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="comboPooledDataSource" /><property name="configLocation" value="classpath:sqlMapConfig.xml" /></bean><!-- 扫描mapper文件 生成代理对象 替代之前dao层的操作 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.test.mapper" /></bean></beans>

数据库信息

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/itstar
user=itstar
password=yyy123456

mybatis配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--配置db.properties  转移到spring中--><!--<properties resource="db.properties" />--><!-- 配置日志管理 --><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!-- 设置别名--><typeAliases><package name="com.test.pojo" /></typeAliases><!-- 转移到spring配置文件中 --><!--<environments default="development">--><!--<environment id="development">--><!--<transactionManager type="JDBC"/>--><!--<dataSource type="POOLED">--><!--<property name="driver" value="${driverClass}"/>--><!--<property name="url" value="${url}"/>--><!--<property name="username" value="${user}"/>--><!--<property name="password" value="${password}"/>--><!--</dataSource>--><!--</environment>--><!--</environments>--><!--注册mapper文件 转移到spring中--><!--<mappers>--><!--<package name="com.test.mapper" />--><!--</mappers>--></configuration>   

dao层

package com.test.dao;import com.test.pojo.Items;import java.util.List;public interface IItemsDao {public List<Items> selectItems();
}
package com.test.dao.impl;import com.test.dao.IItemsDao;
import com.test.mapper.ItemsMapper;
import com.test.pojo.Items;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import java.util.List;//实现类
@Component
public class ItemsDao implements IItemsDao {@Autowiredprivate SqlSessionFactory sqlSessionFactory;public SqlSessionFactory getSqlSessionFactory() {return sqlSessionFactory;}public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}//转移到Spring的配置文件中  让Spring创建SqlSessionFactory对象
//    public ItemsDao()
//    {
//        InputStream inputStream=this.getClass().getClassLoader().getResourceAsStream("sqlMapConfig.xml");
//
//        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//
//        this.sqlSessionFactory= sqlSessionFactoryBuilder.build(inputStream);
//    }//查询所有的商品信息@Overridepublic List<Items> selectItems() {SqlSession sqlSession= sqlSessionFactory.openSession();ItemsMapper itemsMapper= sqlSession.getMapper(ItemsMapper.class);return itemsMapper.selectItems();}
}

mapper

package com.test.mapper;import com.test.pojo.Items;import java.util.List;//创建一个接口  代理ItemsMapper.xml文件
public interface ItemsMapper {public List<Items> selectItems();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.test.mapper.ItemsMapper"><!-- 查询 --><select id="selectItems" resultType="Items">select * from items</select></mapper>

service层

package com.test.service;import com.test.pojo.Items;import java.util.List;public interface IItemsService {public List<Items> selectItems();
}
package com.test.service.impl;import com.test.dao.IItemsDao;
import com.test.pojo.Items;
import com.test.service.IItemsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;//service层的实现类@Service
public class ItemsService implements IItemsService {@Autowiredprivate IItemsDao itemsDao;public IItemsDao getItemsDao() {return itemsDao;}public void setItemsDao(IItemsDao itemsDao) {this.itemsDao = itemsDao;}@Overridepublic List<Items> selectItems() {return itemsDao.selectItems();}
}

测试类

package com.test.service;import com.test.pojo.Items;
import com.test.service.impl.ItemsService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.List;public class TestItemsService {@Testpublic void test(){//测试service层的查询方法ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");IItemsService itemsService= applicationContext.getBean("itemsService",IItemsService.class);List<Items> itemsList= itemsService.selectItems();System.out.println(itemsList);}
}

案例二

省略dao层,由spring代替

在案例一的基础上,修改spring配置文件

<?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:jdbc="http://www.springframework.org/schema/jdbc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd"><!-- 1.扫描包中的注解 --><context:component-scan base-package="com.test" /><!--导入db.properties文件--><context:property-placeholder location="classpath:db.properties" /><!--创建了数据源 --><bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${driverClass}" /><property name="jdbcUrl" value="${url}"/><property name="user" value="${user}" /><property name="password" value="${password}" /></bean><!--创建SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="comboPooledDataSource" /><property name="configLocation" value="classpath:sqlMapConfig.xml" /></bean><!-- 扫描mapper文件 生成代理对象 替代之前dao层的操作 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.test.mapper" /></bean></beans>

删除dao层

修改service层

package com.test.service.impl;import com.test.mapper.ItemsMapper;
import com.test.pojo.Items;
import com.test.service.IItemsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;//service层的实现类@Service
public class ItemsService implements IItemsService {//spring会帮我们创建一个代理对象( 实现了ItemsMapper接口的),代理对象代理的是dao层的功能@Autowiredprivate ItemsMapper itemsMapper;public ItemsMapper getItemsMapper() {return itemsMapper;}public void setItemsMapper(ItemsMapper itemsMapper) {this.itemsMapper = itemsMapper;}@Overridepublic List<Items> selectItems() {return itemsMapper.selectItems();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/154248.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言初阶】初识C语言

目录 一、什么是C语言 二、第一个C语言程序 三、数据类型 类型的使用&#xff1a; 四、变量、常量 4.1 定义变量的方法 4.2 变量的命名 4.3 变量的分类 4.4 变量的使用 4.5 变量的作用域和生命周期 4.5.1 作用域 4.5.2 生命周期 4.6 常量 五、字符串转义字符注释 …

Maven 环境配置

Maven 是一个基于 Java 的工具&#xff0c;所以要做的第一件事情就是安装 JDK。 系统要求 项目 要求 JDK Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 内存 没有最低要求 磁盘 Maven 自身安装需要大约 10 MB 空间…

USB协议层数据格式

USB协议 1. 硬件拓扑结构2. 协议层2.1 字节/位传输顺序2.2 SYNC域2.3 包格式2.3.1 PID域2.3.2 令牌包(Token)2.3.3 数据包2.3.4 握手包 2.4 传输细节2.4.1 传输(Transfer)和事务(Transaction)2.4.2 过程(stage)和阶段(phase)2.4.3 批量传输2.4.4 中断传输2.4.5 实时传输2.4.6 控…

Java项目如何防止SQL注入的四种方案

什么是SQL注入 SQL注入&#xff08;SQL Injection&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者通过操纵应用程序的输入来执行恶意的SQL查询。这种漏洞发生在应用程序没有正确验证、过滤或转义用户提供的输入数据时。攻击者可以利用这个漏洞来执行未经授权的…

Qt元对象系统 day5

Qt元对象系统 day5 内存管理 QObject以对象树的形式组织起来&#xff0c;当为一个对象创建子对象时&#xff0c;子对象回自动添加到父对象的children()列表中。父对象拥有子对象所有权&#xff0c;比如父对象可以在自己的析构函数中删除它的孩子对象。使用findChild()或findC…

基于spso算法的航线规划

matlab2020a GitHub - duongpm/SPSO: Spherical Vector-based Particle Swarm Optimization

SpringBoot结合dev-tool 实现IDEA项目热部署

什么是热部署&#xff1f; 应用正在运行的时候升级功能, 不需要重新启动应用对于Java应用程序来说, 热部署就是在运行时更新Java类文件 通俗的来讲&#xff0c;应用在运行状态下&#xff0c;修改项目源码后&#xff0c;不用重启应用&#xff0c;会把编译的内容部署到服务器上…

超低延时直播技术演进之路-进化篇

一、概述 网络基础设施升级、音视频传输技术迭代、WebRTC 开源等因素&#xff0c;驱动音视频服务时延逐渐降低&#xff0c;使超低延时直播技术成为炙手可热的研究方向。实时音视频业务在消费互联网领域蓬勃发展&#xff0c;并逐渐向产业互联网领域加速渗透。经历了行业第一轮的…

```,```中间添加 # + 空格 + 空行后遇到的底部空行出错,书接上回,处理空行

【python查找替换&#xff1a;查找空行&#xff0c;空行前后添加&#xff0c;中间添加 # 空格 空行后遇到的第1行文字&#xff1f; - CSDN App】http://t.csdnimg.cn/QiKCV def is_blank(line):return len(line.strip()) 0txt 时间戳&#xff1a; ("%Y-%m-%d %H:%M:…

【排序算法】插入排序

文章目录 一&#xff1a;基本概念1.1 介绍1.2 原理1.3 插入排序法思想 二&#xff1a;代码实现2.1 源码2.2 执行结果2.3 测试八万条数据 三&#xff1a;算法分析3.1 时间复杂度3.2 空间复杂度3.3 稳定性 一&#xff1a;基本概念 1.1 介绍 插入式排序属于内部排序法&#xff0…

Xcode 15下,包含个推的项目运行时崩溃的处理办法

升级到Xcode15后&#xff0c;部分包含个推的项目在iOS17以下的系统版本运行时&#xff0c;会出现崩溃&#xff0c;由于崩溃在个推Framework内部&#xff0c;无法定位到具体代码&#xff0c;经过和个推官方沟通&#xff0c;确认问题是项目支持的最低版本问题。 需要将项目的最低…

K8S:K8S对外服务之Ingress

文章目录 一.Ingress基础介绍1.Ingress概念2.K8S对外暴露服务&#xff08;service&#xff09;主要方式&#xff08;1&#xff09;NodePort&#xff08;2&#xff09;LoadBalancer&#xff08;3&#xff09;externalIPs&#xff08;4&#xff09;Ingress 3.Ingress 组成&#x…

计算机网络 | OSI 参考模型

计算机网络 | OSI 参考模型 计算机网络 | OSI 参考模型应用层表示层会话层传输层网络层数据链路层物理层 参考视频&#xff1a;王道计算机考研 计算机网络 参考书&#xff1a;《2022年计算机网络考研复习指导》 计算机网络 | OSI 参考模型 OSI 参考模型自下而上分为7层&…

Redis 学习笔记

文章目录 一、基础命令1.1 通用命令1.2 String1.3 Hash1.4 List1.5 Set1.6 SortedSet 二、Redis 和数据库的数据一致性三、缓存穿透四、缓存雪崩五、缓存击穿 一、基础命令 1.1 通用命令 KEYS pattern 查找所有符合给定模式 pattern 的 key&#xff0c;其中 * 匹配零个或多个…

【Golang】gin框架入门

文章目录 gin框架入门认识gingo流行的web框架gin介绍快速入门 路由RESTful API规范请求方法URI处理函数分组路由 请求参数GET请求参数POST请求参数路径参数文件参数 响应字符串方式JSON方式XML方式文件格式设置HTTP响应头重定向YAML方式 模板渲染基本使用多个模板渲染自定义模板…

Qt中QTimer定时器的用法

Qt中提供了两种定时器的方式一种是使用Qt中的事件处理函数&#xff0c;另一种就是Qt中的定时器类QTimer。 使用QTimer类&#xff0c;需要创建一个QTimer类对象&#xff0c;然后调用其start()方法开启定时器&#xff0c;此后QTimer对象就会周期性的发出timeout()信号。 1.QTimer…

VMware centos7虚拟机修改静态IP

一、修改网络适配器 1、打开 2、使用管理员权限修改 3、按照图中步骤修改为 4、设置网关为10.0.0.2后保存即可 二、修改配置文件 1、输入下面代码进入修改&#xff08;网卡这里网卡名字为ens33&#xff0c;可使用ifcfig或ip a查看&#xff09; vi /etc/sysconfig/netwo…

使用vlc获取海康威视视频流

1.下载相关软件 1.1海康威视官网-服务支持-工具软件-设备网络搜索 下载地址&#xff1a; https://www.hikvision.com/cn/support/tools/hitools/注意&#xff1a;必须跟摄像头在同一个局域网下才可以使用设备网络搜索工具&#xff0c;才能使用vlc获取到视频流。 1.2下载VLC …

Hadoop----Azkaban的使用与一些报错问题的解决

1.因为官方只放出源码&#xff0c;并没有放出其tar包&#xff0c;所以需要我们自己编译&#xff0c;通过查阅资料我们可以使用gradlew对其进行编译&#xff0c;还是比较简单&#xff0c;然后将里面需要用到的服务文件夹进行拷贝&#xff0c;完善其文件夹结构&#xff0c;通常会…

leetcode 每日一题复盘(10.9~10.15)

leetcode 101 对称二叉树 这道题一开始想是用层序遍历,看每一层是否都对称,遇到一个问题就是空指针(子树为空)无法记录下来,同时会导致操作空指针的问题,因此需要修改入队条件,并用一个标志去表示空指针 vector<int>numv;for(int i0;i<size;i){TreeNode*frontque.fro…