最后
Java架构进阶面试及知识点文档笔记
这份文档共498页,其中包括Java集合,并发编程,JVM,Dubbo,Redis,Spring全家桶,MySQL,Kafka等面试解析及知识点整理
Java分布式高级面试问题解析文档
其中都是包括分布式的面试问题解析,内容有分布式消息队列,Redis缓存,分库分表,微服务架构,分布式高可用,读写分离等等!
互联网Java程序员面试必备问题解析及文档学习笔记
Java架构进阶视频解析合集
Hibernate
1) 是全自动框架,不用写SQL,全部自动生成
2) 不利于SQL的优化
3) 入门相对复杂
MyBatis
1) 半自动框架,需要写SQL,由框架完成映射
2) 方便SQL的优化
3) 入门相对容易
============================================================================
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,但是{}是字符串拼接,不能避免注入攻击
- 单元测试
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();
}
}
}
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。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
[外链图片转存中…(img-5w7iS9fX-1714924127231)]