springboot 初步使用

准备工作:

1.先建表

CREATE TABLE `tb_hero` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `profession` varchar(255) DEFAULT NULL,
  `phone` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

INSERT INTO `tb_hero` VALUES ('1', '鲁班', '射手', '13499887733', '12341241@qq.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('2', '李白', '刺客', '18977665521', 'libai@163.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('3', '阿轲', '刺客', '18977665997', 'aike@qq.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('4', '德玛', '肉盾', '13700997665', 'demaxiya.126.com6',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('5', '亚索', '战士', '13586878987', 'yasuo@qq.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('6', '奶妈', '辅助', '13398909089', 'nama@qq.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('7', '剑圣', '刺客', '13398909088', 'jiansheng@163.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('8', '盖伦', '肉盾', '15923242231', 'gailun@126.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('9', '锤石', '辅助', '13398908900', '8888@163.com',"2020-02-18");
INSERT INTO `tb_hero` VALUES ('10', '阿木', '辅助', '13398908928', '13398908928@qq.com',"2020-02-18");
建库建表语句

2.建立pojo类:

public class TbHero {
    private Integer id;
    private String username;
    private String profession;
    private String phone;
    private String email;
}

 配置spring-mvc

1.配置application.yum,先配置端口 后面配置文件未指定的话默认在application.yum加入配置

server:
  port: 80

 2.关于静态文件:

springboot没有web-inf或者web-app文夹,静态文件默认放在这四个位:

3.日志级别:需要Slf4j包

可以在项目中根据热值检查运行状态,比如在调试时,log.info()输出,后面完成后调成debug级别,前面就看不到了。

使用方法 :private  static final Logger log = LoggerFactory.getLogger(MyInterceptor.class);

log.info(""):

log.debug(""):

log.error("');

配置日志级别,写在配置文件中

ogging:
  level:
   com.wangid3: debug
  path: "C:/Users/23058/Desktop/forJob/Springboot/log/test.log"

 4.拦截器配置:

自定义拦截器:

@Slf4j
public class MyInterceptor implements HandlerInterceptor {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.debug("MyInterceptor------preHandle");
        return true;
    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
    }
}

对自定义的拦截器进行配置使用

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
    }
}

注解扫描-自动配置完成
包扫描-内部自带了包扫描
视图解析器-springboot当中不支持jsp,无需配置

以上三个又不用管

配置JDBC

 1. 配置pom.xml

1)添加jdbc启动器

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

2)添加Mysql数据库驱动 

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
</dependency>

2 .配置连接参数(application.yum)

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?characterEncoding=utf-8
    username: root
    password: 1234

3.添加Mybatis启动器(关于mybatis,后面会单开帖子,目前不详细展开)

1)在pom.xml中添加mybatis启动器

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
</dependency>

 2)在application.yum中配置mybatis内部细节,比如别名与配置mapper文件地址

mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.wangid3.pojo

 3)mapper接口扫描,在启动类main方法上面注解

@SpringBootApplication
@MapperScan("com.wangid3.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

 

 通用mapper

通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使用MyBatis单表的增删改查。

但是只支持单表操作,不支持通用的多表联合查询。

1. 引入启动类:

<dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
</dependency>

2.相较于spring,mapper得到简化,使用时, 直接在接口上继续Mapper<实体类>

public interface HeroMapper extends Mapper<Hero> {

}

以前需要自己写方法, 现在不用自己写,直接继承
也不需要在Mapper文件当中写sql了 底层会利用Mybatis的可拦截原理,帮你把方法的sql动态生成了
通用mapper已经引入了springboot jdbc Mybatis,就不需要再单独引入了
启动类也可改成通用mapper的启动类,通过mapper在扫描时, 去自动生成sql

3.在Pojo中指定表名与相关主键属性@Transient表示将不需要序列化的属性,不会在数据库生成相应字段

@Data
@Table(name = "tb_hero")
public class Hero {
    @Id
    @KeySql(useGeneratedKeys = true)
    private Integer id;
    private String username;
    private String profession;
    @Transient
    private String phone;
    private String email;
    private Date onlinetime;
}

 创建Service并调用执行

service层与一般spring无大区别:

@Service
public class HeroServiceImpl implements HeroService {

    @Resource
    private HeroMapper heroMapper;

    @Override
    public List<Hero> getAllHero() {
        List<Hero> heroes = heroMapper.selectAll();
        System.out.println(heroes);
        return heroMapper.getAllHero();
    }
}
public interface HeroService {
    public List<Hero> getAllHero();
}

如果想使用事务,只需要在添加事务的方法上, 添加注解@Transactional

 

posted @ 2020-12-22 17:33  wangid3  阅读(85)  评论(0)    收藏  举报