广告
返回顶部
首页 > 资讯 > 精选 >好程序员Java学习路线分享MyBatis之Spring整合
  • 687
分享到

好程序员Java学习路线分享MyBatis之Spring整合

2023-06-02 16:06:47 687人浏览 八月长安
摘要

  好程序员Java学习路线分享mybatis之spring整合,Spring、springMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。引入依赖首先我们

  好程序员Java学习路线分享mybatisspring整合,Spring、springMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。

引入依赖

首先我们需要在Maven项目中添加依赖,Spring框架和MyBatis框架需要的依赖有:

Ø mybatis    MyBatis

Ø mybatis-spring   MyBatis的Spring兼容包,用于整合MyBatis

Ø spring-jdbc   Spring的JDBC包,配置数据源时需要

Ø spring-test   Spring单元测试

Ø spring-context   Spring上下文,提供iocaop服务

Ø Junit    单元测试框架

Ø mysql-connector-java  Mysql数据库驱动

Ø c3p0    连接池

添加配置文件

首先我们用properties文件配置JDBC的参数:

示例代码:jdbc.properties

 driver=com.mysql.cj.jdbc.Driver

 url=jdbc:mysql://localhost/java1903?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false

 user=root

 passWord=123456

接下来在Spring配置文件中整合MyBatis

 <!--1 引入属性文件,在配置中占位使用 -->

 <context:property-placeholder location="classpath:jdbc.properties" />

 <!--2 配置C3P0数据源 -->

 <bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

 <!--驱动类名 -->

 <property name="driverClass" value="${driver}" />

 <!-- url -->

 <property name="jdbcUrl" value="${url}" />

 <!-- 用户名 -->

 <property name="user" value="${user}" />

 <!-- 密码 -->

 <property name="password" value="${password}" />

 <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 -->

 <property name="acquireIncrement" value="5"></property>

 <!-- 初始连接池大小 -->

 <property name="initialPoolSize" value="10"></property>

 <!-- 连接池中连接最小个数 -->

 <property name="minPoolSize" value="5"></property>

 <!-- 连接池中连接最大个数 -->

 <property name="maxPoolSize" value="20"></property>

 </bean>

 <!--3 配置MyBatis会话工厂bean -->

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

 <!-- 数据源 -->

 <property name="dataSource" ref="datasource"/>

 <!-- 别名 -->

 <property name="typeAliasesPackage" value="com.qianfeng.mybatis.entity"/>

 <!-- sql映射文件路径 -->

 <property name="mapperLocations" value="classpath:mappers

 public interface UserDAO {

       

     List<User> selectAll();

 }

编写Mapper 映射文件

编写Mapper接口的映射,实现查询功能

代码示例:

 <?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是设置对应的DAO接口-->

 <mapper namespace="com.qianfeng.SSM.dao.UserDAO">

     <!--配置数据库返回结果映射-->

     <resultMap id="userMap" type="User">

         <!--id用于配置主键,property是实体类的属性名,column是表中的字段名-->

         <id property="id" column="u_id"></id>

         <!--result配置主键外其他列-->

         <result property="name" column="u_name"></result>

         <result property="password" column="u_password"></result>

         <result property="realname" column="u_realname"></result>

         <result property="age" column="u_age"></result>

         <result property="gender" column="u_gender"></result>

         <result property="img" column="u_img"></result>

     </resultMap>

     <!--配置查询语句-->

     <select id="selectAll" resultMap="userMap">

         select * from tb_user

     </select>

   

 </mapper>

Spring整合JUnit进行单元测试

使用Spring整合JUnit,测试Mapper接口是否能用SpringIOC实现注入:

代码示例

 @ContextConfiguration(locations = "classpath:applicationContext.xml")

 @RunWith(SpringJUnit4ClassRunner.class)

 public class TestDAO {

 

     @Resource

     UserDAO userDAO;

 

     @Test

     public void testUserDAO(){

         List<User> users = userDAO.selectAll();

         users.forEach((user)->System.out.println(user));

     }

 }

好程序员Java学习路线分享MyBatis之Spring整合

总结

使用Spring整合MyBatis后,能够利用Spring强大的IOC机制,将Mapper接口的代理对象注入进来,从而避免了手动创建SqlSessionFactory和SqlSession对象的麻烦,同时Spring对SqlSession的访问方式进行了优化,解决了SQLSession的线程安全问题。

--结束END--

本文标题: 好程序员Java学习路线分享MyBatis之Spring整合

本文链接: https://www.lsjlt.com/news/230503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 好程序员Java学习路线分享MyBatis之Spring整合
      好程序员Java学习路线分享MyBatis之Spring整合,Spring、SpringMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。引入依赖首先我们...
    99+
    2023-06-02
  • 好程序员Java学习路线分享Java-String常用方法
      好程序员Java学习路线分享Java-String常用方法,String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能继承。String类对...
    99+
    2023-06-02
  • 好程序员Python学习路线分享Linux和数据库部分
      好程序员Python学习路线分享Linux和数据库部分,技能树:掌握Linux操作系统管理技术,可以搭建几乎所有Linux环境服务器。  学习线路简单示意图:    知识点细化:  Linux操作系统:常见操作系统、操作系统发展历史、系...
    99+
    2023-06-01
  • 好程序员Python学习路线之python爬虫入门
      好程序员Python学习路线之python爬虫入门,随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yaho...
    99+
    2023-06-02
  • 好程序员web前端学习路线分享CSS浮动-清除浮动篇
    好程序员web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动  这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢?1.高度塌陷  举个例子我们看一下。    我们在这里设置了div0是外容...
    99+
    2023-06-03
  • 好程序员Java干货分享Spring框架之IOC原理
    好程序员Java干货分享Spring框架之IOC原理,前言:Spring框架是我们进行企业级开发的最常用框架,本章我们将了解Spring框架,并学习Spring的IOC特性以及IOC的实现原理:注解和反射。Spring框架简介  Sprin...
    99+
    2023-06-02
  • 好程序员web前端培训分享HTMLCSS学习之CSS基础
      好程序员web前端培训分享HTMLCSS学习之CSS基础,CSS(cascading style sheet) 汉译为层叠样式表,是用于控制网页样式WEB标准中的表现标准语言,在网页中主要对网页信息的显示进行控制。目前推荐遵循的是W3C...
    99+
    2023-06-03
  • 好程序员web前端培训分享JavaScript学习笔记之ES5
      好程序员web前端培训分享JavaScript学习笔记之ES5,我们所说的 ES5 和 ES6 其实就是在 js 语法的发展过程中的一个版本而已  比如我们使用的微信  最早的版本是没有支付功能的  随着时间的流逝,后来出现了一个版本,...
    99+
    2023-06-03
  • Java程序员干货学习笔记—Spring结合MyBatis实现数据库读写分离
    随着系统用户访问量的不断增加,数据库的频繁访问将成为我们系统的一大瓶颈之一。由于项目前期用户量不大,我们实现单一的数据库就能完成。但是后期单一的数据库根本无法支撑庞大的项目去访问数据库,那么如何解决这个问题呢?实际的应用中,数据库都是读多写...
    99+
    2023-06-02
  • 好程序员web前端教程分享JavaScript学习笔记之Event事件二
      好程序员web前端教程分享JavaScript学习笔记之Event事件二,今天来聊一聊事件的执行机制。  什么是事件的执行机制呢?  思考一个问题?  当一个大盒子嵌套一个小盒子的时候,并且两个盒子都有点击事件你点击里面的小盒子,外面的...
    99+
    2023-06-03
  • 好程序员Java培训分享Java学习到什么程度可以找到工作
      好程序员Java培训分享Java学习到什么程度可以找到工作,在大学阶段,我们学习编程更多的是兴趣使然,但是临近毕业,当所学的知识与技能马上要转化成挣钱谋生的手段时,我们难免焦虑了。于是我们拼命的啃书、刷面试题、参与到实习公司的开发项目中...
    99+
    2023-06-02
  • Java工程师成神之路:程序员的学习路线规划以及书籍推荐
    一、基础篇面向对象什么是面向对象面向对象、面向过程面向对象的三大基本特征和五大基本原则平台无关性Java如何实现的平台无关性的JVM还支持哪些语言(Kotlin、Groovy、JRuby、Jython、Scala)值传递值传递、引用传递为什...
    99+
    2023-06-02
  • ​好程序员web前端培训分享node学习笔记系列之四十一
    好程序员web前端培训分享node学习笔记系列之四十一一、手动封装body-parser中间件 cookie-parser中间件1、封装axios请求方式body-parserconst qs = requir...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作