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”;
}
//第三种方式对应的Controller
@GetMapping(value = “/delUser”)
@ResponseBody
public String delUser(HttpServletRequest request) {
Long id = Long.parseLong(request.getParameter(“id”));
return userService.delUser(id)==1?“SUCCESS”:“FAIL”;
}
//跳转到主页
@GetMapping(value = “index”)
public String index(){
return “index”;
}
//跳转到登录页面
@GetMapping(value = “login”)
public String login(){
return “login”;
}
}
8、数据库建表
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
最后
给大家送一个小福利
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
[外链图片转存中…(img-WnJYeYDj-1711111974936)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-Br30yRS7-1711111974936)]
最后
给大家送一个小福利
[外链图片转存中…(img-iLMzwN5S-1711111974937)]
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
[外链图片转存中…(img-UrRz5Cpz-1711111974938)]