微服务架构 SpringBoot(二)

摘要:
mybatis弹簧靴起动器<版本>5.1.44</版本>&书信电报;进口机构名称;importcom.chinasoft.bean.User;用户>getUser(){returnuserdao.que;
第二天内容:想来想去玩个ssm小demo吧

1.创建表

微服务架构 SpringBoot(二)第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

 微服务架构 SpringBoot(二)第2张

4.编写三层 bean

微服务架构 SpringBoot(二)第3张

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);
	}
}

 启动:

微服务架构 SpringBoot(二)第4张

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

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

微服务架构 SpringBoot(二)第5张

监控运维作用:

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

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

搜索actuator查看相关属性

微服务架构 SpringBoot(二)第6张

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

微服务架构 SpringBoot(二)第7张

细节概要:

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

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

微服务架构 SpringBoot(二)第8张

如果手动映射如下:

微服务架构 SpringBoot(二)第9张

微服务架构 SpringBoot(二)第10张

2.关键字

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

微服务架构 SpringBoot(二)第11张

 总结:

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

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

免责声明:文章转载自《微服务架构 SpringBoot(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL双主热备问题处理记安装ubuntu server和一些程序下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL 数据恢复

首先针对修复过程中产生的问题进行再修复: 1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定,会直接删除 data 文件夹下的 expresspackage.ibd 文件,这时候数据库重启数据...

不定字段数目的数据库表设计和数据结构

不定字段数目的数据库表设计和数据结构 可能采用四种技术: 动态增加数据库表字段 预留足够的空白字段,运行时作动态影射 用xml格式保存在单字段里 改列为行,用另外一个表存放定制字段 现在我们来分析一下四种技术的优劣,不过首先可以排除的是第一点动态增加字段的方法,因为在实际操作时候几乎是不可能的(sqlserver太慢,oracle索性不支持)...

springboot整合mybatis将sql打印到日志(转)

在前台请求数据的时候,sql语句一直都是打印到控制台的,有一个想法就是想让它打印到日志里,该如何做呢? 见下面的mybatis配置文件: [html]view plaincopyprint? <?xml version="1.0" encoding="UTF-8" ?>   <!DOCTYPE configuration PU...

DBeaver连接达梦数据库

1、连接类型选择ODBC。 2、编辑驱动设置:   1)Class Name:dm.jdbc.driver.DmDriver   2)URL Template:jdbc:dm://{dbserver}/{database}。例如:jdbc:dm://192.168.101.222/UFFICE   3)Default Port:{dbport}   4)L...

将excel文件的内容导入sql server数据库的方法

1,首先创建一个相应的表,格式保证和excel文件相同。 2,在导入之前,要把数据库安全限制的开关打开。地点是sql server 构成 tool 的 security 构成里面的机能security构成里面的 open row set & open data source 选项打上钩。确定。 3,输入sql语句,执行导入 例子如下 Codeus...

windows服务器定时对mysql数据库进行数据库自动备份

每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件. 分享如下. 1. 环境: windows server 2003 + Apache 2.0 + PHP5 + MySQL 4.0.26 . 2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql. 3. 在 D:/php 下建立目录 WinRA...