第二天内容:想来想去玩个ssm小demo吧

1.创建表

2..引入相关mybatis 数据库jar:

<!--mybatis  -->
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>1.1.1</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
  <version>5.1.44</version>
</dependency>

3.在application.properties文件中 配置数据库驱动

spring.datasource.url=jdbc:mysql://localhost/springboot
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

4.编写三层 bean

beans

package com.chinasoft.bean;

public class User {

    private Integer id;
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

dao

package com.chinasoft.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import com.chinasoft.bean.User; @Mapper //集成mybatis
public interface UserDao {
@Select("select id ,name from user_tba") //也可以写配置文件形式,通过配置读取sql,我这里就不多讲了
public List<User> getUser();      @Update("UPDATE user_tba SET name = #{name} WHERE id =#{id}")
int updateById(User user); @Insert("insert INTO user_tba (name) values(#{name})")
void insert(User user); @Delete("DELETE FROM user_tba WHERE id = #{id} ")
int delete(Long id); }

Service

package com.chinasoft.service;

import java.util.List;

import com.chinasoft.bean.User;

public interface UserService {
   public List<User> getUser();
int updateById(User user);
void insert(User user);
int delete(Long id);
}

ServiceImpl

package com.chinasoft.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.chinasoft.bean.User;
import com.chinasoft.dao.UserDao;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userdao; @Override
public List<User> getUser() {
return userdao.queryAll();
} @Override
public int updateById(User user) {
return userdao.updateById(user);
} @Override
public void insert(User user) {
userdao.insert(user);
} @Override
public int delete(Long id) {
return userdao.delete(id);
} }

Contorller

package com.chinasoft.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.chinasoft.bean.User;
import com.chinasoft.service.UserService; @Controller
//@RestClientTest
public class HelloSpringBootContorller {
@Autowired
private UserService userService; @RequestMapping(value ={"/show"})
@ResponseBody
public List<User> getUser(){
List<User> user = userService.getUser();
return user;
}
    @RequestMapping(value ={"/update"})
   public void updateUser(){
User user = new User();
user.setId(1);
user.setName("杨幂");
userService.updateById(user);
  } @RequestMapping(value ={"/insert"})
public void insertUser(){
User user = new User();
user.setName("赵丽颖");
userService.insert(user);
} @RequestMapping(value ={"/delete"})
public void deleteUser(){ userService.delete(4L);
} }

运行配置:

package com.chinasoft.springboot;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; @SpringBootApplication
@ComponentScan(basePackages = "com.chinasoft.*" )
@MapperScan(basePackages = "com.chinasoft.dao") //需注意 此为扫描数据库资源文件
public class SpringbootApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}

启动:

添加监控运维:(查看请求及jvm的运行信息)

<!--监控运维  -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

监控运维作用:

当请求访问时可以访问监控,看到用户的请求,操作信息,及jvm的运行状态。。。信息。

https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/

搜索actuator查看相关属性

例如访问:http://localhost:8082/beans  显示的监控信息。。。

细节概要:

1.mybatis怎么和实体类映射的呢?可访问mybatis官网(http://blog.mybatis.org/mybatis-3/java-api.html)

A:@Mapper 自动扫描字段与实体类相对性给予映射。若不同则为空,eg:将数据库中的NAME字段改为address,运行结果如下,

如果手动映射如下:

2.关键字

sql中存在关键字 需要在关键字前后加反引号  (键盘英文格式下 ctrl +alt +~ )

总结:

Spring Boot集成mybatis时的一些注意的地方,也可以看出来SpringBoot确实简介方便,以前用mybatis还要封装查询query,而现在直接@select便可以直接查询,还是比较方便的开发的,这也应该是一种趋势,

技术交流群,海量学习资料免费获取:Q群:289683917

微服务架构 SpringBoot(二)的更多相关文章

  1. Spring Cloud构建微服务架构(二)服务消费者

    Netflix Ribbon is an Inter Process Communication (IPC) cloud library. Ribbon primarily provides clie ...

  2. 微服务架构 SpringBoot(一)

    spring Boot:官网地址 https://spring.io/ 由来: 随着spring组件功能的强大,配置文件也越来越复杂繁琐,背离了spring公司的简洁快速开发原理,2015年就推出Sp ...

  3. Spring Cloud构建微服务架构(二)分布式配置中心

     注:此文不适合0基础学习者直接阅读,请先完整的将作者关于微服务的博文全部阅读一遍,如果还有疑问,可以再来阅读此文,地址:http://blog.csdn.net/sosfnima/article/d ...

  4. 微服务架构 - SpringBoot整合Jooq和Flyway

    在一次学习分布式跟踪系统zipkin中,发现了jooq这个组件,当时不知这个组件是干嘛的,后来抽空学习了一下,感觉这个组件还挺用的.它主要有以下作用: 通过DSL(Domain Specific La ...

  5. 《Spring Cloud构建微服务架构》系列博文示例

    SpringCloud-Learning   源码下载地址:http://download.csdn.net/detail/k21325/9650968     本项目内容为Spring Cloud教 ...

  6. Net分布式系统之五:微服务架构

    因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...

  7. Spring Cloud构建微服务架构

    Dalston版本 由于Brixton和Camden版本的教程已经停止更新,所以笔者计划在2017年上半年完成Dalston版本的教程编写(原计划完成Camden版本教程,但由于写了两篇Dalston ...

  8. Spring Cloud构建微服务架构(三)消息总线

     注:此文不适合0基础学习者直接阅读,请先完整的将作者关于微服务的博文全部阅读一遍,如果还有疑问,可以再来阅读此文,地址:http://blog.csdn.net/sosfnima/article/d ...

  9. SpringBoot微服务架构下的MVC模型总结

    SpringBoot微服务架构下的MVC模型产生的原因: 微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其繁琐的配置流程 , 复杂的设置行为,为项目的开发增加了繁重的工作量,微服务致力于解 ...

随机推荐

  1. Redis 的底层数据结构(对象)

    目前为止,我们介绍了 redis 中非常典型的五种数据结构,从 SDS 到 压缩列表,这都是 redis 最底层.最常用的数据结构,相信你也掌握的不错. 但 redis 实际存储键值对的时候,是基于对 ...

  2. ehcache监控

    引入Maven依赖 <dependency> <groupId>org.terracotta.ehcachedx.com.javabi</groupId> < ...

  3. 使用scrapy-redis搭建分布式爬虫环境

    scrapy-redis简介 scrapy-redis是scrapy框架基于redis数据库的组件,用于scrapy项目的分布式开发和部署. 有如下特征:  分布式爬取 您可以启动多个spider工 ...

  4. python中return和print的区别

    之前遇到这个问题,就试着对比几种不同的结果,总结啦一下return和print的区别. 总结: return的作用之一是返回计算的值print的作用是输出数据到控制端 在第一个结果中什么都没有输出:在 ...

  5. Java基础面试题及答案(二)

    容器 18. java 容器都有哪些? 常用容器的图录: 19. Collection 和 Collections 有什么区别? java.util.Collection 是一个集合接口(集合类的一个 ...

  6. P2669 金币

    题目描述 国王将金币作为工资,发放给忠诚的骑士.第一天,骑士收到一枚金币:之后两天(第二天和第三天),每天收到两枚金币:之后三天(第四.五.六天),每天收到三枚金币:之后四天(第七.八.九.十天),每 ...

  7. Error creating bean with name 'entityManagerFactory' defined in class path resource解决方案

    ​ 项目是集成了Spring Boot和Spring Data,然后昨天简单Jpa和Spring Boot配置完成,开始进行公司项目的重构,然后出现了这个问题.当时是在网上找了好久.后来发现时java ...

  8. TableViewCell的封装(显示不同内容)

    http://blog.csdn.net/qq_24513939/article/details/45968123

  9. react之高阶组件(一)

    当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...

  10. obs命令行工具obsutil的使用测试

    test1 批量复制,目标文件夹ggggg-zyx0809/data/tmp/a0文件夹已存在,不使用flat命令,目标路径包含a0文件夹 操作 从ggggg-zyx0809/data/g_cageg ...