4.0.0
com.boot.demo
bootdemo
0.0.1-SNAPSHOT
bootdemo
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
tk.mybatis
mapper-spring-boot-starter
2.0.4
mysql
mysql-connector-java
8.0.13
org.projectlombok
lombok
1.16.20
provided
org.apache.tomcat.embed
tomcat-embed-jasper
javax.servlet
jstl
org.springframework.boot
spring-boot-maven-plugin
2、配置文件
Spring Boot配置文件有两种:application.yml和application.properties,作用是一样的,不过因为yml文件是树状结构,写起来有更好的层次感,更易于理解,所以很多人都选择了yml文件。
#配置数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/testdb?characterEncoding=utf8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mvc:
view:
prefix: /WEB-INF/
suffix: .jsp
#配置mybatis
mybatis:
typeAliasesPackage: com.boot.demo.bootdemo.domain
mapper-locations: classpath:mapper/*.xml
#配置mapper
mapper:
not-empty: false
identity: MYSQL
#配置Tomcat,配置80,可在浏览器访问项目时不用加端口号(默认端口8080)
server:
port: 80
3、Java Bean
Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。
@Data
@Table(name = “user”)
public class User {
@Id
@KeySql(useGeneratedKeys = true)
private Long id;
private String name;
private Date createDate;
}
4、自定义Mapper
Tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效。这个插件里面封装好了我们需要用到的很多sql语句,不过这个插件是通过我们去调用它封装的各种方法来实现sql语句的效果。对于单表查询不需要写SQL语句,这样就不用像mybatis那样每次写一个接口就要写一条sql语句。这样大大减少了我们的工作量。
public interface MyMapper extends BaseMapper, MySqlMapper {
}
5、UserMapper和UserMapper.xml
通用mapper可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。例如:第三种方式。
@Mapper
public interface UserMapper extends MyMapper {
//第一种方式,注解sql,方便,但维护性略差
@Select(“select * from user”)
List selectAll();
//第二种方式,xml方式,易维护
int save(User user);
//第三种方式:通用mapper,本身提供了很多现成的增删改查sql,方法不在文件中体现;例如:int deleteByPrimaryKey()
}
<?xml version="1.0" encoding="UTF-8" ?>insert into user (id, name, create_date)
values (#{id}, #{name}, #{createDate})
6、服务实现类
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Service
public class UserService {
@Resource
private UserMapper userMapper;
//第一种方式对应的Service
public List listAll() {
return userMapper.selectAll();
}
//第二种方式对应的Service
public int saveUser(User user) {
return userMapper.save(user);
}
//第三种方式对应的Service,通用mapper,直接调用现成的增删改查sql
public int delUser(Long id) {
return userMapper.deleteByPrimaryKey(id);
}
}
7、控制层
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。如果要返回json内容,就用@RestController,如果要返回到指定页面,就用@Controller。
@Controller
public class UserController {
@Resource
private UserService userService;
//第一种方式对应的Controller
@GetMapping(value = “/listUser”)
@ResponseBody
public List listAll() {
return userService.listAll();
}
//第二种方式对应的Controller
@PostMapping(value = “/saveUser”)
@ResponseBody
public String saveUser(HttpServletRequest request) {
User user = new User();
user.setName(request.getParameter(“username”));
user.setCreateDate(new Date());
return userService.saveUser(user)==1?“SUCCESS”:“FAIL”;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/1602874aff781c11ac71024db8f7c789.jpeg)
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
[外链图片转存中…(img-OtAIniNl-1713719916865)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!