2024年Java最新MyBatis框架(一)MyBatis基础,阿里java面试题目

最后

Java架构进阶面试及知识点文档笔记

这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理

image

Java分布式高级面试问题解析文档

其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!

image

互联网Java程序员面试必备问题解析及文档学习笔记

image

Java架构进阶视频解析合集

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

Hibernate

​ 1) 是全自动框架,不用写SQL,全部自动生成

​ 2) 不利于SQL的优化

​ 3) 入门相对复杂

MyBatis

​ 1) 半自动框架,需要写SQL,由框架完成映射

​ 2) 方便SQL的优化

​ 3) 入门相对容易

2、MyBatis的基本使用

============================================================================

1)导入依赖

org.mybatis

mybatis

3.5.5

2)添加配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>

3)定义mapper接口

只定义一个insert方法

/**

  • 书籍表的映射接口

*/

public interface BookMapper {

void insert(Book book);

}

4) 映射文件

在resources的mappers目录下添加映射文件

<?xml version="1.0" encoding="UTF-8" ?>

insert into tb_book(book_name, price, type_id, author, publish_org, publish_time, state,book_image)

values(#{bookName},#{price},#{typeId},#{author},#{publishOrg},#{publishTime},#{state},#{bookImage});

讲解配置:

  • mapper 配置某一个接口

  • namespace 指定接口的类型

  • insert 配置插入方法,类似的还有:update、delete、select

  • id 方法名称

  • parameterType 方法参数的类型

  • #{xx} 占位符,用于在SQL中插入参数值,

​ 类似的还有 x x , 但 是 {xx},但是 xx,但是{}是字符串拼接,不能避免注入攻击

  1. 单元测试

public class TestBookMapper {

@Test

public void testInsert(){

//创建SQLSessionFactoryBuilder对象,用于创建SQLSessionFactory

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

//创建SqlSessionFactory

try {

SqlSessionFactory factory = builder.build(Resources.getResourceAsStream(“mybatis-config.xml”));

//SqlSessionFactory用于创建SqlSession会话

try(SqlSession session = factory.openSession()){

//通过session获得Mapper对象

BookMapper mapper = session.getMapper(BookMapper.class);

//执行操作

mapper.insert(new Book(0L,“test-11”,88,1,“xx”,“xx”,“2011-1-1”,0,“xx.jpg”));

//提交修改

session.commit();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

3、MyBatis的查询


1) 给接口加方法

List findAll();

Book findById(int id);

2) 返回值的配置

需要给select标签配置返回值的类型resultType

select * from tb_book

select * from tb_book where id = #{id}

3) 测试

@Test

public void testSelectAll(){

//创建SQLSessionFactoryBuilder对象,用于创建SQLSessionFactory

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

//创建SqlSessionFactory

try {

SqlSessionFactory factory = builder.build(Resources.getResourceAsStream(“mybatis-config.xml”));

//SqlSessionFactory用于创建SqlSession会话

try(SqlSession session = factory.openSession()){

//通过session获得Mapper对象

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

[外链图片转存中…(img-5w7iS9fX-1714924127231)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值