junit
junit
4.12
mysql
mysql-connector-java
8.0.23
com.mchange
c3p0
0.9.5.2
javax.servlet
servlet-api
2.5
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
org.mybatis
mybatis
3.5.2
org.mybatis
mybatis-spring
2.0.2
org.springframework
spring-webmvc
5.1.9.RELEASE
org.springframework
spring-jdbc
5.1.10.RELEASE
org.projectlombok
lombok
1.18.12
3.Maven资源过滤设置
=============
(如果不配置,那么启动时可能会报错)
src/main/java
**/*.properties
**/*.xml
false
src/main/resources
**/*.properties
**/*.xml
false
4.建立相关目录
========
5.编写pojo层的实体类Blog
=================
package com.yixin.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Blog {
private int id;
private String name;
private String pwd;
}
6.编写dao层的BlogMapper
===================
package com.yixin.dao;
import com.yixin.pojo.Blog;
import java.util.List;
public interface BlogMapper {
public int addBlog(Blog blog);
public int deleteBlogById(int id);
int updateBlog(Blog blog);
Blog queryBlogById(int id);
List queryAllBlogs();
}
7.编写Mapper.xml
==============
<?xml version="1.0" encoding="UTF-8" ?>select * from blog where id=#{id}
update blog set name=#{name} ,pwd=#{pwd} where id=#{id}
insert into blog(name,pwd) values(#{name},#{pwd})
delete from blog where id=#{id}
select * from blog
8.编写service层的接口和实现类
===================
接口:
package com.yixin.service;
import com.yixin.pojo.Blog;
import java.util.List;
public interface BlogService {
public int addBlog(Blog blog);
public int deleteBlogById(int id);
int updateBlog(Blog blog);
Blog queryBlogById(int id);
List queryAllBlogs();
}
实现类:
package com.yixin.service;
import com.yixin.dao.BlogMapper;
import com.yixin.pojo.Blog;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import java.util.List;
public class BlogServiceImpl implements BlogService{
private BlogMapper blogMapper;
public void setBlogMapper(BlogMapper blogMapper) {
this.blogMapper = blogMapper;
}
public int addBlog(Blog blog) {
return blogMapper.addBlog(blog);
}
public int deleteBlogById(int id) {
return blogMapper.deleteBlogById(id);
}
public int updateBlog(Blog blog) {
return blogMapper.updateBlog(blog);
}
public Blog queryBlogById(int id) {
return blogMapper.queryBlogById(id);
}
public List queryAllBlogs() {
return blogMapper.queryAllBlogs();
}
}
9.编写controller层
===============
package com.yixin.controller;
import com.yixin.pojo.Blog;
import com.yixin.service.BlogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
@RequestMapping(“/blog”)
public class BlogController {
@Autowired
@Qualifier(“BlogServiceImpl”)
private BlogService blogService;
@RequestMapping(“/allBlog”)
public String list(Model model) {
List list = blogService.queryAllBlogs();
System.out.println(“test”);
System.out.println(list);
model.addAttribute(“list”, list);
return “allBlog”;
}
@RequestMapping(“/toAddBlog”)
public String toAddPaper() {
return “addBlog”;
}
@RequestMapping(“/addBlog”)
public String addPaper(Blog blog) {
System.out.println(blog);
blogService.addBlog(blog);
return “redirect:/blog/allBlog”;
}
@RequestMapping(“/toUpdateBlog”)
public String toUpdateBook(Model model, int id) {
Blog blogs = blogService.queryBlogById(id);
System.out.println(blogs);
model.addAttribute(“blog”,blogs );
return “updateBlog”;
}
@RequestMapping(“/updateBlog”)
public String updateBook(Model model, Blog blog) {
System.out.println(blog);
blogService.updateBlog(blog);
Blog blog1 = blogService.queryBlogById(blog.getId());
model.addAttribute(“blogs”, blog1);
return “redirect:/blog/allBlog”;
}
@RequestMapping(“/del/{blogId}”)
public String deleteBook(@PathVariable(“blogId”) int id) {
blogService.deleteBlogById(id);
return “redirect:/blog/allBlog”;
}
}
编写配置类
=====
10.编写MyBatis层
=============
(1)编写数据库配置文件db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis_blog?useSSL=true&useUnicode=true&characterEncoding=UTF-8\
&autoReconnect=true&failOverReadOnly=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username=root
password=123456
(2)编写MyBatis核心配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>11.编写Spring层
============
(1)编写Spring整合Mybatis的相关的配置文件:spring-dao.xml
<?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”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location=“classpath:db.properties” system-properties-mode=“FALLBACK”/>
<–支持过滤由指定的创建接口或注解创建映射器,这样就可以直接使用Mapper了–>
(2)Spring整合service层
<?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”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package=“com.yixin.service” />
12.SpringMVC配置
==============
(1)web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns=“http://xmlns.jcp.org/xml/ns/javaee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd”
version=“4.0”>
DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext.xml
1
DispatcherServlet
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encodingFilter
/*
15
(2)spring-mvc.xml
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
Java核心架构进阶知识点
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img-u97Z4ya7-1712808786389)]
[外链图片转存中…(img-b0QxDa6L-1712808786389)]
[外链图片转存中…(img-DxkRcGno-1712808786390)]
[外链图片转存中…(img-W5ntuwAP-1712808786390)]
[外链图片转存中…(img-ydU845Ru-1712808786390)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-BMWuSUSn-1712808786391)]
Java核心架构进阶知识点
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
[外链图片转存中…(img-q61CSkb5-1712808786391)]
[外链图片转存中…(img-zSxLs4GT-1712808786391)]
[外链图片转存中…(img-dKo7Ou0w-1712808786391)]
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-xQqmfRSU-1712808786392)]