前言

前面参照SpringBoot官网,自动生成了简单项目点击打开链接

配置数据库和代码遇到的问题

问题1:cannot load driver class :com.mysql.jdbc.Driver不能加载mysql

原因:没有添加依赖

解决:pom.xml添加依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
    问题2:Consider defining a bean of type 'com.xx.dao.XxDao' in your configuration.注入UserDao失败

原因:UserDao没有添加注解

解决:在接口UserDao外层加上注解:@Mapper

问题3:controller中注入service失败

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.boot.service.DemoService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    原因:application.java文件默认扫描相同包名下的service,dao。

解决:application.java文件添加注解:@ComponentScan(basePackages = "com.xxx")

配置Mysql数据库

在pom.xml添加依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
在application.properties添加

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/girls
spring.datasource.username=root
spring.datasource.password=chendashan
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

server.port=8080
server.session.timeout=10
server.tomcat.uri-encoding=UTF-8

mybatis.configLocations= classpath:mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml
    建立库表省略,文章末尾附带

mapper文件

操作数据库,靠它完成。

<?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">
<!-- namespace用于绑定Dao接口 -->
<mapper namespace="com.housekeeper.dao.UserDao">
<!-- 用用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.housekeeper.model.User" >
<!-- column代表数据库列名,property代表实体类属性名 -->
<result column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
<result column="user_password" property="userPassword"/>
</resultMap>
<!-- 查询名字记录sql -->
<select id="selectUserByUserName" parameterType="String" resultMap="BaseResultMap">
SELECT * FROM girls_info WHERE user_name = #{userName}
</select>
</mapper>
    综上得知,UserDao通过映射文件mapper,执行了sql语句,返回了实体类User

UserDao接口

@Mapper
public interface UserDao {
/**
* 根据user_name查询数据库
* (映射执行mapper文件中的sql语句selectUserByUserName)
* @param userName 名字
* @return User
*/
public User selectUserByUserName(String userName);
}
User实体类

public class User {
private String userName;
private String userPassword;

public String getUserName() {
return userName;
}

public void setName(String userName) {
this.userName = userName;
}

public String getUserPassword() {
return userPassword;
}

public void setPassword(String userPassword) {
this.userPassword = userPassword;
}

}
逻辑结构

逻辑层在controller里处理,已知,执行Userdao的接口方法,即可操作数据库。为了更好处理逻辑分层,加入Service层,调用UserDao。在Service实现层,注入UserDao即可调用其方法。

@Service
public class UserServiceImp implements UserService {

@Autowired
private UserDao userDao;//注入UserDao

@Override
public User selectUserByName(String userName) {
return userDao.selectUserByUserName(userName);
}

}
public interface UserService {
/**
* 通过姓名查找User
* @param userName
* @return
*/
User selectUserByName(String useName);
}
controller

最后,controller层对外提供接口,返回查询数据结果

@Controller
public class UserController {

@Autowired
private UserService userService;//注入Service

@ResponseBody
@RequestMapping(value = "/login", method = RequestMethod.POST)
public Map<String, Object> login(@RequestParam(value = "userName", required = true) String userName,
@RequestParam(value = "userPassword", required = true) String userPassword) {
Map<String,Object> result = new HashMap<String, Object>();
User user = null;
String retCode = "";
String retMsg = "";
if(StringUtils.isEmpty(userName) || StringUtils.isEmpty(userPassword)){
retCode = "01";
retMsg = "用户名和密码不能为空";
}else{
user = userService.selectUserByName(userName);
if(null == user){
retCode = "01";
retMsg = "用户不存在";
}else{
if(userPassword.equals(user.getUserPassword())){
retCode = "00";
retMsg = "登录成功";
}else{
retCode = "01";
retMsg = "密码有误";
}
}
}
result.put(SystemConst.retCode, retCode);
result.put(SystemConst.retMsg, retMsg);
return result;
}

}
girls.sql文件

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `girls_info`
-- ----------------------------
DROP TABLE IF EXISTS `girls_info`;
CREATE TABLE `girls_info` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(30) NOT NULL,
`user_password` varchar(10) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of girls_info
-- ----------------------------
INSERT INTO `girls_info` VALUES ('1', '张帆', '123456');
INSERT INTO `girls_info` VALUES ('2', '李北', '123456');
INSERT INTO `girls_info` VALUES ('3', '陈珊珊', '123456');
INSERT INTO `girls_info` VALUES ('4', '王国立', '123456');
INSERT INTO `girls_info` VALUES ('5', '张三', '123456');
INSERT INTO `girls_info` VALUES ('6', '李四', '123456');
INSERT INTO `girls_info` VALUES ('7', 'Biligle', '123456');
下载地址:https://download.csdn.net/download/qq_29266921/10457479
---------------------
作者:Biligle
来源:CSDN
原文:https://blog.csdn.net/qq_29266921/article/details/80513146
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/telwanggs/p/10779893.html

【入门】Spring-Boot项目配置Mysql数据库相关推荐

  1. springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL

    Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...

  2. Spring Boot项目配置ssl证书及自定义ssl端口号

    好吧,一切不带s的http裸奔都是耍流氓. 我们知道在一个Web服务器(e.g. Tomcat, Websphere, Nginx)上配置ssl证书很容易,那么如何在SpringBoot这种内嵌了服务 ...

  3. Spring Boot MyBatis配置多种数据库

    mybatis-config.xml是支持配置多种数据库的,本文将介绍在Spring Boot中使用配置类来配置. 1. 配置application.yml # mybatis配置 mybatis:c ...

  4. java+spring+mysql配置_用spring的beans配置mysql数据库

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www. ...

  5. spring boot项目配置RestTemplate超时时长

    配置类: @Configuration public class FeignConfiguration {@Bean(name="remoteRestTemplate")publi ...

  6. Spring Boot 属性配置和使用

    spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot 系列 Spring Boot 入门 S ...

  7. 快速使用 Docker 部署 Spring Boot 项目

    如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...

  8. jdbctemplate mysql 配置_Spring Boot 初级入门教程(十四) —— 配置 MySQL 数据库和使用 JdbcTemplate 测试...

    经过前面几篇文章,包已经可以打了,不管是 jar 包还是 war 包都已测试通过,jsp 页面也可以访问了,但页面上的数据都是在配置文件中写死的,不爽 ~ 到目前为止,最重要的配置还没做,那就是连数据 ...

  9. Spring Boot概述与入门特点配置方式注入方式yim配置文件与多文件配置Spring Boot自动配置原理lombok应用

    1. Spring Boot概述 Spring Boot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 首页Spring Boot简介可以 ...

最新文章

  1. ClickHouse系列教程八:从一个服务器导入4T数据到另外一个服务器
  2. oracle简体版,oracle|Navicat中文网站
  3. kotlin键值对数组_Kotlin程序以升序对数组进行排序
  4. 前端学习(2257)如何做分支管理
  5. c语言标识符的文法表示,第三章文法和语法[lly]3.ppt
  6. MaxCompute规格详解 让您花更低的成本获得更高的业务价值
  7. 如何简单区分web前后端与MVC框架
  8. HashSet 与HashMap底层实现
  9. menu什么意思中文意思_pipeline什么意思
  10. 如何将mov格式转换成mp4并且不改变分辨率
  11. !impotent的标准支持
  12. Android Studio新手–下载安装配置–零基础入门–基本使用–调试技能–构建项目基础–使用AS应对常规应用开发
  13. Meltdown:Reading Kernel Memory from User Space 论文中英对照
  14. Xadmin文档(二)
  15. mysql索引入门-黑马
  16. 微信功能介绍微信二维码,DIV宣传页
  17. surrogate function
  18. Python制作简易计算器(GUI)---Tkinter
  19. 新手arduino小白有问题请教大家
  20. MVC 网上招聘系统的设计与实现java jsp 程序设计 课程设计 毕业设计-附源码02135

热门文章

  1. extjs给panel添加滚动条_extjs.treePanel在ie9下滚动条的显示问题-阿里云开发者社区...
  2. java编程线程怎么处理_java编程多线程并发处理的教程
  3. 网络协议:TCP保活机制和Nagle算法
  4. Spark源码分析之Checkpoint机制
  5. 基于FPGA实现PCIE IP功能仿真
  6. oracle导出报错04063,Oracle EXP导出报错的解决方法
  7. android 动态改变文字,android – 如何动态设置文本到TextView?
  8. EssentialC++
  9. python中pip不是内部或外部命令_‘pip’不被识别为内部或外部命令。
  10. 【蓝桥杯单片机】DS1302时钟芯片+DS18B20单总线温度传感器(官方驱动源码改写)