产生背景:
1.基于spring大量繁琐的配置文件,各种xml配置以及注解配置,为了简化整个开发过程,在spring基础之上提供了一套全新的开源的框架, 他就是spring boot。
2.它具有spring一切优秀的特性,且更加简单,功能更丰富,性能更稳定。
3.依赖模块“开箱即用”,自动配置。
4.有内置Servlet容器(例如 Tomcat、Jetty 或者 Undertow 等),告别jar包
5.不需要任何xml配置
创建Spring Boot(以IntelliJ IDEA为例)
1.新建Spring Initializr(maven也可)工程,建议走阿里云:https://start.aliyun.com/
2.在 dependencise 界面中,选择 Spring Boot 的版本以及需要引入的依赖。
3.进入工程会默认配置一个XXXXApplication 的主启动程序。
4.yml(yaml)
YAML 全称 YAML Ain‘t Markup Language,它是一种以数据为中心的标记语言,比 XML 和 JSON 更适合作为配置文件。
想要使用 YAML 作为属性配置文件(以 .yml 或 .yaml 结尾),需要将 SnakeYAML 库添加到 classpath 下,Spring Boot 中的 spring-boot-starter-web 或 spring-boot-starter 都对 SnakeYAML 库做了集成, 只要项目中引用了这两个 Starter 中的任何一个,Spring Boot 会自动添加 SnakeYAML 库到 classpath 下。
YAML 的语法如下:
- 使用缩进表示层级关系。
- 缩进时不允许使用 Tab 键,只允许使用空格。
- 缩进的空格数不重要,但同级元素必须左侧对齐。
- 大小写敏感。
举例:Spring Boot 链接oracle,增删改查--表数据
1.新建好Spring Initializr工程后,将默认的配置文件改为yml格式,填写链接部分。内容如下:
spring:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@192.168.234.151:1521:orcl
username: zyp
password: ok
mybatis:
mapper-locations: classpath*:mapper/*.xml
type-aliases-package: com.zyp.myspb1.entity
2.写三层结构,及存放sql部分的xml文件
resources配置下新建mapper包,这里存放各种业务类的sql语句部分,例bank.xml
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zyp.myspb1.dao.BankDAO"> <select id="findAll" resultType="bank"> select * from bank select> <insert id="insertBank" parameterType="bank"> insert into bank values(#{id},#{name},#{money}) insert> <delete id="deleteBank" parameterType="int"> delete from bank where id=#{id} delete> <update id="updateBank" parameterType="bank"> update bank <set> <if test="name != null"> name=#{name}, if> <if test="money !=0"> money=#{money} if> set> <where> <if test="id !=0"> id=#{id} if> where> update> mapper>
实体类:
public class Bank { private int id; private String name; private int money; 以及各 get/set 方法 }
DAO层:
public interface BankDAO { public List findAll();//查 public void insertBank(Bank bank); public void deleteBank(int id); public void updateBank(Bank bank); }
services类:
@Service//通知spring new一个实例出来 @Transactional//开启自动事务,只有增删改需要,查询并不需要提交 public class BankService { @Resource private BankDAO bdao; public List fall(){ return bdao.findAll(); } public void save(Bank bank){ bdao.insertBank(bank); } public void del(int uid){ bdao.deleteBank(uid); } public void update(Bank bank){ bdao.updateBank(bank); } }
控制层:(之前的Servlet)
/* @RestController:告诉spring * 本类下所有添加的RequestMapping的方法的都是Servlet * 并且返回json格式 * */ @RestController public class BankCtrl { @Resource//按类型进行注入 private BankService bankService; @RequestMapping("/all")//给该servlet起个名字 public List find() { return bankService.fall(); } @RequestMapping("/save") public String save(@RequestBody Bank bank){ bankService.save(bank); return "完成增添工作"; } @RequestMapping("/del") public String del(int uid){ bankService.del(uid); return "完成删除工作"; } @RequestMapping("/update") public String up(@RequestBody Bank bank){ bankService.update(bank); return "完成修改工作"; } }
启动:
@SpringBootApplication @MapperScan("com.zyp.myspb1.dao")//扫描整个DAO层 public class Myspb1Application { public static void main(String[] args) { SpringApplication.run(Myspb1Application.class, args); } }
测试这里用PostMan
Spring Boot 有内置Tomcat,默认端口号8080。直接运行main方法去postman测试即可
查询:
插入:(注:这里用json格式)
修改:
删除: