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

 

原文地址:https://www.cnblogs.com/jiuhaoyun/p/10102263.html