MyBatis入门(六)---mybatis与spring的整合
一、整合需要
1.1、方法
上一章中的数据
需要sPRing通过单例方式管理SqlsessionFactory
spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession
(spring和mybatis整合自动完成)
持久层的mapper都需要由spring进行管理
二、创建项目整合环境
2.1、创建项目
2.2、数据
db.properties
#数据库配置信息
#驱动
driverClass=com.MySQL.jdbc.Driver
#连接url
jdbcUrl=jdbc:mysql://localhost:3306/mybatis?character=utf8#用户名
user=root
#密码
passWord=root
#连接池中保留的最小连接数
minPoolSize=10#连接池中保留的最大连接数。Default: 15 maxPoolSize=20#最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 maxIdletime=1800#当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3acquireIncrement=3#连接池中初始化连接数 应在minPoolSize与maxPoolSize之间取值。默认为3
initialPoolSize=15
2.3、confinguration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
2.4 POJO类与接口
package com.pb.ssm.po;import java.util.Date;/**
*
* @ClassName: Author
* @Description: TODO(作者)
* @author 刘楠
* @date 2015-10-31 下午12:39:33
* */public class Author { //作者id
private Integer authorId; //作者姓名
private String authorUserName; //作者密码
private String authorPassword; //作者邮箱
private String authorEmail; //作者介绍
private String authroBio; //注册时间
private Date registerTime;
public Integer getAuthorId() { return authorId;
} public void setAuthorId(Integer authorId) { this.authorId = authorId;
} public String getAuthorUserName() { return authorUserName;
} public void setAuthorUserName(String authorUserName) { this.authorUserName = authorUserName;
} public String getAuthorPassword() { return authorPassword;
} public void setAuthorPassword(String authorPassword) { this.authorPassword = authorPassword;
} public String getAuthorEmail() { return authorEmail;
} public void setAuthorEmail(String authorEmail) { this.authorEmail = authorEmail;
} public String getAuthroBio() { return authroBio;
} public void setAuthroBio(String authroBio) { this.authroBio = authroBio;
} public Date getRegisterTime() { return registerTime;
} public void setRegisterTime(Date registerTime) { this.registerTime = registerTime;
}
@Override public String toString() { return "Author [authorId=" + authorId + ", authorUserName="
+ authorUserName + ", authorPassword=" + authorPassword + ", authorEmail=" + authorEmail + ", authroBio=" + authroBio + ", registerTime=" + registerTime + "]";
}
}
接口
package com.pb.ssm.mapper;import com.pb.ssm.po.Author;public interface AuthorMapper { /**
*
* @Title: findAuthorById
* @Description: TODO(根据id查找)
* @param @param id
* @param @return 设定文件
* @return Author 返回类型
* @throws
*/
public Author findAuthorById(int id);
/**
*
* @Title: addAuthor
* @Description: TODO(添加)
* @param @param author
* @param @return 设定文件
* @return int 返回类型
* @throws
*/
public int addAuthor(Author author); /**
*
* @Title: updateAuthor
* @Description: TODO(更新)
* @param @param author
* @param @return 设定文件
* @return int 返回类型
* @throws
*/
public int updateAuthor(Author author);
/**
* 删除
* @Title: delteAuthor
* @Description: TODO(根据ID删除)
* @param @param id
* @param @return 设定文件
* @return int 返回类型
* @throws
*/
public int delteAuthor(int id);
}
mapper.xml
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
VALUES(#{authorUserName},#{authorPassword},#{authorEmail},#{authroBio})
三、使用Mybatis配置文件.xml整合
3.1、写applicationContext.xml
3.2、测试
package com.pb.ssm.mapper;import java.io.InputStream;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 org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.pb.ssm.po.Author;public class AuthorMapperTest { private ApplicationContext applicationContext;
@Before public void setUp() throws Exception {
applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
}
@Test public void testFindAuthorById() {
AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMapper");
Author author = authorMapper.findAuthorById(2);
System.out.println(author);
}
@Test public void testAddAuthor() { // 获取会话工厂
AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMapper");
Author author=new Author();
author.setAuthorUserName("程序猿");
author.setAuthorPassword("QWERdlfdad");
author.setAuthorEmail("QWER@QQ.com");
int num = authorMapper.addAuthor(author);
System.out.println("num="+num);
System.out.println("添加后的ID:"+author.getAuthorId());
}
@Test public void testUpdateAuthor() { // 获取会话工厂
AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMapper");
Author author = authorMapper.findAuthorById(13);
author.setAuthroBio("天天写代码");
author.setAuthorUserName("码农"); int num=authorMapper.updateAuthor(author);
System.out.println("num="+num);
System.out.println(author);
}
@Test public void testDeleteAuthor() { // 获取会话工厂
AuthorMapper authorMapper = (AuthorMapper) applicationContext.getBean("authorMapper"); int num= authorMapper.delteAuthor(13);
}
}
四、不使用mybatis配置文件
4.1、写ApplicationContext.xml
更改Mapper.xml,因为不能使用别名,所以type要写POJO类的全路径
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
VALUES(#{authorUserName},#{authorPassword},#{authorEmail},#{authroBio})
测试类同上
以上就是MyBatis入门(六)---mybatis与spring的整合的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Spring+AI作为行业领导者,通过其强大、灵活的API和先进的功能,为各种行业提供了领先性的解决方案。在本专题中,我们将深入探讨Spring+AI在各领域的应用示例,每个案例都将展示Spring+AI如何满足特定需求,实现目标,并将这些LESSONSLEARNED扩展到更广泛的应用。希望这个专题能对你有所启发,更深入地理解和利用Spring+AI的无限可能。Spring框架在软件开发领域已经有超过20年的历史,自SpringBoot1.0版本发布以来已有10年。现在,无人会质疑,Spring

MyBatis动态SQL标签解读:Set标签用法详解MyBatis是一个优秀的持久层框架,它提供了丰富的动态SQL标签,可以灵活地构建数据库操作语句。其中,Set标签是用于生成UPDATE语句中SET子句的标签,在更新操作中非常常用。本文将详细解读MyBatis中Set标签的用法,以及通过具体的代码示例来演示其功能。什么是Set标签Set标签用于MyBati

MyBatis的缓存机制解析:一级缓存与二级缓存的区别与应用在MyBatis框架中,缓存是一个非常重要的特性,可以有效提升数据库操作的性能。其中,一级缓存和二级缓存是MyBatis中常用的两种缓存机制。本文将详细解析一级缓存与二级缓存的区别与应用,并提供具体的代码示例进行说明。一、一级缓存一级缓存也被称为本地缓存,它默认开启且不可关闭。一级缓存是SqlSes

MyBatis一级缓存详解:如何提升数据访问效率?在开发过程中,高效的数据访问一直是程序员们关注的焦点之一。而对于MyBatis这样的持久层框架而言,缓存是提升数据访问效率的关键方法之一。MyBatis提供了一级缓存和二级缓存两种缓存机制,其中一级缓存是默认开启的。本文将详细介绍MyBatis一级缓存的机制,并提供具体的代码示例,帮助读者更好地理

MyBatisGenerator是MyBatis官方提供的一个代码生成工具,可以帮助开发人员快速生成符合数据库表结构的JavaBean、Mapper接口以及XML映射文件。在使用MyBatisGenerator进行代码生成的过程中,配置参数的设置是至关重要的。本文将从配置参数的角度出发,深入探讨MyBatisGenerator的

MyBatis一对多查询配置详解:解决常见关联查询问题,需要具体代码示例在实际的开发工作中,经常会遇到需要查询主实体对象及其关联的多个从实体对象的情况。在MyBatis中,一对多查询是一种常见的数据库关联查询,通过正确的配置,可以方便地实现对关联对象的查询、展示和操作。本文将介绍MyBatis中一对多查询的配置方法,以及如何解决一些常见的关联查询问题,同时会

MyBatis是一款流行的Java持久层框架,广泛应用于各种Java项目中。其中,批量插入是一个常见的操作,可以有效提升数据库操作的性能。本文将深入探讨MyBatis中的批量Insert实现原理,并结合具体的代码示例进行详细解析。MyBatis中的批量Insert在MyBatis中,批量Insert操作通常使用动态SQL来实现。通过构建一条包含多个插入值的S

MyBatis缓存机制详解:一文读懂缓存存储原理引言在使用MyBatis进行数据库访问时,缓存是一个非常重要的机制,能够有效减少对数据库的访问,提高系统性能。本文将详细介绍MyBatis的缓存机制,包括缓存的分类、存储原理和具体的代码示例。一、缓存的分类MyBatis的缓存主要分为一级缓存和二级缓存两种。一级缓存一级缓存是SqlSession级别的缓存,当在
