zoukankan      html  css  js  c++  java
  • idea从零搭建简单的springboot+Mybatis

    需用到的sql

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : localhost root
    Source Server Version : 80012
    Source Host           : localhost:3306
    Source Database       : demo
    
    Target Server Type    : MYSQL
    Target Server Version : 80012
    File Encoding         : 65001
    
    Date: 2018-12-11 14:58:41
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for sys_user
    -- ----------------------------
    DROP TABLE IF EXISTS `sys_user`;
    CREATE TABLE `sys_user` (
      `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
      `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户名',
      `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
      `salt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '随机盐',
      `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '简介',
      `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '头像',
      `dept_id` int(11) DEFAULT NULL COMMENT '部门ID',
      `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
      `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '0-正常,1-删除',
      PRIMARY KEY (`user_id`),
      UNIQUE KEY `user_idx1_username` (`username`),
      UNIQUE KEY `user_idx2_phone` (`phone`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='用户表';
    
    -- ----------------------------
    -- Records of sys_user
    -- ----------------------------
    INSERT INTO `sys_user` VALUES ('1', 'admin', '$2a$10$vg5QNHhCknAqevx9vM2s5esllJEzF/pa8VZXtFYHhhOhUcCw/GWyS', null, '17034642111', null, '1', '2018-04-20 07:15:18', '2018-05-11 17:12:00', '0');
    INSERT INTO `sys_user` VALUES ('4', 'pig', '$2a$10$vg5QNHhCknAqevx9vM2s5esllJEzF/pa8VZXtFYHhhOhUcCw/GWyS', null, '17034642118', null, '1', '2018-04-22 11:39:07', '2018-05-10 18:01:11', '0');

    首先打开idea创建项目

    选好jdk版本点击next

    根据自己需求修改各个参数点击next

    选中SQL的依赖

    然后选择web依赖点击next

    finish

    然后新建各个包

    在application.properties

     1 #数据库地址及库
     2 spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
     3 #数据库账号密码
     4 spring.datasource.username=root
     5 spring.datasource.password=root
     6 #驱动
     7 spring.datasource.driverClassName=com.mysql.jdbc.Driver
     8 
     9 #mapper扫描地址
    10 mybatis.mapper-locations= classpath*:mapper/**/*Mapper.xml
    11 
    12 #tomcat端口号及编码
    13 server.port=8011
    14 server.tomcat.uri-encoding=UTF-8

    这里启动时会报个错,这个错目前好像是springboot版本过于新,导致jdbc的驱动与以前不一样,所以我更改了springboot版本(下方红色为报错信息) 记得构建下

    更改后在controler中创建一个java类

    controller代码

     1 package com.example.demo.controller;
     2 
     3 import org.springframework.web.bind.annotation.RequestMapping;
     4 import org.springframework.web.bind.annotation.RestController;
     5 
     6 @RestController
     7 public class DemoController {
     8 
     9     @RequestMapping("hello")
    10     public String test(){
    11         return "hello";
    12     }
    13 }

    创建后启动进入网址:http://localhost:8011/hello

    进入成功

    到这里就是简单的idea搭建springboot项目了,接下来整合mybaits

    新建各个类

      1 /* 
      2  * Copyright (c) 2015, QUANRONG E-COMMDERCE LTD. All rights reserved.
      3  */
      4 package com.example.demo.domain;
      5 
      6 import java.util.Date;
      7 
      8 /**
      9  * 用户Entity
     10  * @author qr
     11  * @version 2013-12-05
     12  */
     13 public class User {
     14 
     15     private static final long serialVersionUID = 1L;
     16 
     17     private Long id;//租户id
     18     private String username;//用户名
     19     private String password;//租户id
     20     private String salt;//随机盐
     21     private String phone;//简介
     22     private String avatar;//头像
     23     private String deptid;//部门ID
     24     private Date createTime;//创建时间
     25     private Date updateTime;//修改时间
     26     private String delFlag;//0-正常,1-删除',
     27 
     28     public Long getId() {
     29         return id;
     30     }
     31 
     32     public void setId(Long id) {
     33         this.id = id;
     34     }
     35 
     36     public String getUsername() {
     37         return username;
     38     }
     39 
     40     public void setUsername(String username) {
     41         this.username = username;
     42     }
     43 
     44     public String getPassword() {
     45         return password;
     46     }
     47 
     48     public void setPassword(String password) {
     49         this.password = password;
     50     }
     51 
     52     public String getSalt() {
     53         return salt;
     54     }
     55 
     56     public void setSalt(String salt) {
     57         this.salt = salt;
     58     }
     59 
     60     public String getPhone() {
     61         return phone;
     62     }
     63 
     64     public void setPhone(String phone) {
     65         this.phone = phone;
     66     }
     67 
     68     public String getAvatar() {
     69         return avatar;
     70     }
     71 
     72     public void setAvatar(String avatar) {
     73         this.avatar = avatar;
     74     }
     75 
     76     public String getDeptid() {
     77         return deptid;
     78     }
     79 
     80     public void setDeptid(String deptid) {
     81         this.deptid = deptid;
     82     }
     83 
     84     public Date getCreateTime() {
     85         return createTime;
     86     }
     87 
     88     public void setCreateTime(Date createTime) {
     89         this.createTime = createTime;
     90     }
     91 
     92     public Date getUpdateTime() {
     93         return updateTime;
     94     }
     95 
     96     public void setUpdateTime(Date updateTime) {
     97         this.updateTime = updateTime;
     98     }
     99 
    100     public String getDelFlag() {
    101         return delFlag;
    102     }
    103 
    104     public void setDelFlag(String delFlag) {
    105         this.delFlag = delFlag;
    106     }
    107 }

    controller代码修改为(如果自己编写代码注意注解别忘记加上)

     1 package com.example.demo.controller;
     2 
     3 import com.example.demo.domain.User;
     4 import com.example.demo.service.HelloService;
     5 import org.springframework.beans.factory.annotation.Autowired;
     6 import org.springframework.web.bind.annotation.RequestMapping;
     7 import org.springframework.web.bind.annotation.ResponseBody;
     8 import org.springframework.web.bind.annotation.RestController;
     9 
    10 import java.util.List;
    11 
    12 @RestController
    13 public class DemoController {
    14 
    15 @Autowired
    16 private HelloService helloService;
    17 
    18 
    19     @RequestMapping("hello")
    20     @ResponseBody
    21     public  List<User> test(){
    22         List<User> users = helloService.selectUser();
    23         return users;
    24     }
    25 }

    service

    package com.example.demo.service;
    
    import com.example.demo.domain.User;
    
    import java.util.List;
    
    public interface HelloService {
        List<User> selectUser();
    }

    serviceImpl(如果自己编写代码注意注解别忘记加上)

    package com.example.demo.service.Impl;
    
    import com.example.demo.domain.User;
    import com.example.demo.mapper.HelloDao;
    import com.example.demo.service.HelloService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class HelloServiceImpl implements HelloService {
        @Autowired
        private HelloDao helloDao;
    
        @Override
        public List<User> selectUser() {
            return helloDao.selectUser();
        }
    }

    dao(如果自己编写代码注意注解别忘记加上)

    package com.example.demo.mapper;
    
    import com.example.demo.domain.User;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public interface HelloDao {
         List<User> selectUser();
    }

     xml(记得修改mapper的namespace为对应dao的全路径 还有resultType的全路径)

    <?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.example.demo.mapper.HelloDao">
    
        <select id="selectUser" resultType="com.example.demo.domain.User">
            SELECT
            user_id as 'id',
            username,
            password,
            salt,
            phone,
            avatar,
            dept_id as  'deptId',
            create_time AS 'createTime',
            update_time AS 'updateTime',
            del_flag AS 'delFlag'
            FROM sys_user;
        </select>
    
    </mapper>

    最后在启动项加上扫描的包的地址

    然后大功告成 访问地址:http://localhost:8011/hello

     

  • 相关阅读:
    linux read 系统调用剖析
    IO流程及优化
    分布式存储比较
    BTree,B-Tree,B+Tree,B*Tree的数据结构
    Spectrum Scale
    unixbench测试
    网络文件系统与 Linux
    协程的实现
    进程池和线程池
    django-spirt 论坛主题
  • 原文地址:https://www.cnblogs.com/jiuhaoyun/p/10102263.html
Copyright © 2011-2022 走看看