一、idea项目
1.新建一个项目
1.1pom文件的内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<groupId>org.example</groupId>
<artifactId>generator</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.28</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.在src.main.resources中添加两个新的yml文件
3.application.yml的文件内容如下
spring:
profiles:
active: dev
4.application-dev.yml的文件内容如下
server:
port: 8080
spring:
datasource:
username: root
password: root
#url中database为对应的数据库名称 //数据库名字
url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver
mybatis:
mapper-locations: classpath:mapping/*.xml
type-aliases-package: com.work.pojo
#showSql
logging:
level:
com.work.dao.mapper: debug
需要改变的内容有:
①:url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
端口号localhost和 数据库名字mydb
②:type-aliases-package: com.work.pojo
路径记得都要改成自己的路径,要不会发生有的包找不到的情况。
③:冒号后面都有个空格
5.建立层级目录
6.controller层的代码
package com.work.controller;
import com.work.pojo.User;
import com.work.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
//数据接口中就不再需要添加@ResponseBody,更加简洁
//ResponseBody,实现将conreoller方法返回对象转化为json对象响应给客户。
@RestController
//明确请求的路径 父路径
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
//明确请求路径 子路径
@RequestMapping(value = "getUser/{id}", method = RequestMethod.GET)
//@PathVariable 用户从 url 路径上获取指定参数。路径上传输参数的时候用{}把参数括起来
public String GetUser(@PathVariable int id) {
return userService.getUserInfo(id).toString();
}
//明确请求路径
@RequestMapping("/selectAll")
@ResponseBody
public List<User> ListUser() {
return userService.selectAll();
}
}
7.dao层的代码
package com.work.dao;
import com.work.pojo.User;
import org.springframework.stereotype.Repository;
import java.util.List;
//用于实例化对象
@Repository
public interface UserMapper {
//通过id 得到用户信息
User getUserInfo(int id);
//得到所有用户信息
List<User> selectAll();
}
8.pojo层的代码 id,userName等需要和数据库表中的一样
package com.work.pojo;
public class User {
private String id;
private String userName;
private String passWord;
private String realName;
//满参构造
public User(String id, String userName, String passWord, String realName) {
this.id = id;
this.userName = userName;
this.passWord = passWord;
this.realName = realName;
}
//get和set方法
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
//toString方法
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
", realName='" + realName + '\'' +
'}';
}
}
9.service层的对象
package com.work.service;
import com.work.dao.UserMapper;
import com.work.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
//实例化对象
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
//通过id得到用户信息
public User getUserInfo(int id) {
return userMapper.getUserInfo(id);
}
//得到所有用户信息
public List<User> selectAll() {
return userMapper.selectAll();
}
}
10.resource中的mapping文件
UserMapper.xml中的文件内容
<?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.work.dao.UserMapper">
<resultMap id="BaseResultMap" type="com.work.pojo.User">
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="userName" jdbcType="VARCHAR" property="userName" />
<result column="passWord" jdbcType="VARCHAR" property="passWord" />
<result column="realName" jdbcType="VARCHAR" property="realName" />
</resultMap>
<!--查询用户信息-->
<select id="getUserInfo" resultType="com.work.pojo.User">
select * from user where id = #{id}
</select>
<!--返回所有用户信息-->
<select id="selectAll" resultType="com.work.pojo.User">
select * from user
</select>
</mapper>
11.启动类的代码
package com.work;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.work.dao") //扫描的mapper
public class UserApplication {
public static void main(String[] args) {
SpringApplication.run(UserApplication.class,args);
}
}
二、启动mysql
1.打开cmd 或者 win+R 黑窗口, 以管理员身份运行
2.cd D:\mysql-5.7.27-winx64\bin
3.启动mysql : net start mysql
=========================================================================
复盘时的易错点,
1.maven问题 出现了 mysql版本过高,和maven重复的问题导致项目启动失败。
建议直接用文章中的依赖。
2.yml配置没有更改全
3.mapper.xml文件中的SQL语句,通过id查找是需要把
select * from books where id = #{id} 也进行更改
配置时容易出错。