spring mysql整合_springboot mybatis mysql 整合

1、pom文件配置

mysql

mysql-connector-java

runtime

org.springframework.boot

spring-boot-starter-test

test

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.2.0

org.springframework.boot

spring-boot-starter-jdbc

2、mybatis 数据库连接配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/testpentaho?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=root

mybatis.mapper-locations= = classpath:xml/*.xml

mybatis.type-aliases-package=com.zjx.pojo

3.pojo

package com.zjx.pojo;

import org.springframework.context.annotation.Bean;

import java.io.Serializable;

/**

* 学生信息表

*/

public class Student implements Serializable {

private String userName;

private String userAge;

private String userSex;

private String userAddress;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getUserAge() {

return userAge;

}

public void setUserAge(String userAge) {

this.userAge = userAge;

}

public String getUserSex() {

return userSex;

}

public void setUserSex(String userSex) {

this.userSex = userSex;

}

public String getUserAddress() {

return userAddress;

}

public void setUserAddress(String userAddress) {

this.userAddress = userAddress;

}

public Student(String userName, String userAge, String userSex, String userAddress) {

this.userName = userName;

this.userAge = userAge;

this.userSex = userSex;

this.userAddress = userAddress;

}

public Student() {

}

@Override

public String toString() {

return "Student{" +

"userName='" + userName + '\'' +

", userAge='" + userAge + '\'' +

", userSex='" + userSex + '\'' +

", userAddress='" + userAddress + '\'' +

'}';

}

}

4、mapper 接口及映射文件

package com.zjx.mapper;

import org.apache.ibatis.annotations.Mapper;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Repository;

import com.zjx.pojo.Student;

import java.awt.print.Pageable;

import java.util.*;

@Mapper

public interface StudentMapper {

public void add(Student student);

public List findByName(Student student);

public void delete(Student student);

public List findAll();

}

select * from student

select * from student where userName = #{userName}

insert into student(userName,userAge,userSex,userAddress)

values

(#{userName},#{userAge},#{userSex},#{userAddress})

delete from student where userName=#{userName}

5、service

package com.zjx.service;

import com.zjx.mapper.StudentMapper;

import com.zjx.pojo.Student;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.cache.annotation.CacheEvict;

import org.springframework.cache.annotation.Cacheable;

import org.springframework.stereotype.Service;

import java.util.List;

@Service

public class StudentService {

@Autowired

StudentMapper studentMapper;

@CacheEvict(value="student",allEntries = true)

public void add(Student student){

this.studentMapper.add(student);

}

public List findByName(Student student){

return this.studentMapper.findByName(student);

}

@CacheEvict(value="student",allEntries = true)

public void del(Student student){

this.studentMapper.delete(student);

}

@Cacheable(value = "student")

public List allStudent(){

return this.studentMapper.findAll();

}

}

6、测试

package com.zjx;

import com.zjx.pojo.Student;

import com.zjx.service.StudentService;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)

@SpringBootTest

public class SpringbootehcacheApplicationTests {

@Autowired

StudentService studentService;

@Test

public void contextLoads() {

}

@Test

public void getStudent(){

//第一次

System.out.println(this.studentService.allStudent().size());

this.studentService.add(new Student("aa","24","男","华阳大道"));

this.studentService.del(new Student("cc","","",""));

this.studentService.del(new Student("bb","","",""));

this.studentService.del(new Student("aa","","",""));

//第二次

System.out.println(this.studentService.allStudent().size());

}

}

运行出现 invalid bound statement (not found)异常

原因是mapper.xml文件未加载

目录结构:

4bb2a788195256e0389575365a7e2705.png

以上是自学总结。有借鉴前辈帖子望见谅。不足之处请多多指教

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序怎么取mysql_微信小程序如何加载数据库真实数据?

微信小程序要加载网站数据库里面的真实数据,有一个硬性的要求,就是你的网站域名必须是https协议才行,要不然你第一步服务器域名配置你都通过不了,小编我也是前不久申请的https://www.100txy.com,具体申请步骤大家自行去…

mysql定时任务

1. 查看是否开启定时策略 show variables like %event_sche%; 若出现如下图,则此时是关闭状态 开启定时策略(重启无效) set global event_scheduler 1; 则需要在配置文件my.ini的设置(重启有效) [mysqld] event_schedulerON //这一行加入mysqld标签下 2. 创建存储过…

02使用常规步骤编译NanoPiM1Plus的Android4.4.2

02使用常规步骤编译NanoPiM1Plus的Android4.4.2 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 21504965 AT qq.com 完成时间:2017/12/5 17:51 版本:V1.0 开发板:NanoPi M1 Plus/zh SDK:Android4.4.2 按照全志A33平台编译调通的功能&…

验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)

上一节我们成功将 Rex-Ray Volume 挂载到了 Service。本节验证 Failover 时,数据不会丢失。 Scale Up 增加一个副本: docker service update --replicas 2 my_web 运行之前我们先推测一下,理想的结果应该是:swarm 在 swarm-worker…

java multimap 序列化_C++ JSON库的使用

1. 如何使用?2. 常用方法2.1 创建json对象2.1.1 使用cin,cout输入输出流2.1.2 提供根据键直接生成键值对的方法2.1.3 json::array json::object2.1.4 几个区别2.2 序列化2.2.1 标准输出自动序列化2.2.2 使用dump()函数2.3 反序列化2.3.1 从标准输入反序列化2.3.2 通…

【Excle数据透透视表】如何删除数据透视表

选中区域A4:C17,在键盘上按DELETE键删除,结果提示:那么如何删除呢?解决方案选中整个数透视表,再删除具体操作:选中整个数据透视表→DELETE注意:删除之后,源数据不会受到影响转载于:https://www.…

java 启动redis服务器_docker启动redis并使用java连接

一、先查找镜像docker search redis二、拉取镜像docker pull redis三、等待拉取完毕四、查看拉去的镜像docker iamges五、运行redis连接1:https://blog.csdn.net/weixin_38956287/article/details/80423607连接2:http://www.runoob.com/docker/docker-in…

【算法学习】整体二分

我们开门见山,讲讲一道sb题: 给你一个数组,查这个数组的第x大元素。 排序?可以 二分?怎么做啊? 二分出一个mid,判断这个数组中有多少个数小于等于mid,如果个数大于等于x,…

mysql100个优化技巧_完整篇:100+个MySQL调试和优化技巧(2)

▼MySQL模式优化51.检查和经常优化表.52. 经常重写InnoDB表优化.53. 有时,当添加列时删除索引,然后在添加回来索引,这样就会更快.54. 针对不同的需求,使用不同的存储引擎.55. 使用归档存储引擎日志表或审计表-这是更有效地写道.56…

简单的SQL注入学习

引贴: http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/ 首先需要编写一个php页面,讲php页面放入/opt/lampp/htdocs目录下: 解释一下这个页面: 1.通过if语句判断变量是否初始化 2.if语句中通过mysql_conne…

什么是网站监控?

网站监控是跟踪网站的可用性和性能,以最小化宕机时间,优化性能并确保顺畅的用户体验。维护网站正常运行对于任何企业来说都是至关重要的,因而对大多数业务来说,网站应用监控都是一个严峻的挑战。Applications Manager网站应用监控…

intellij idea 分屏设置 与快捷键

1、找到分屏功能 File -> setting -> keymap,搜索(注意大小写):   Split Vertically 水平分屏   Split Horizontally 垂直分屏 2、设置快捷键, 编辑快捷键的地方在搜索框同一行:    在标签上直…

SSH整合方案二(不带hibernate.cfg.xml)

整体结构: 1.引入相关jar包 2.编写实体类和映射文件 package cn.zqr.domain;public class Customer {private Long cust_id;private String cust_name;private Long cust_user_id;private Long cust_create_id;private String cust_source;private String cust_industry;privat…

POJ 1742 Coins ( 经典多重部分和问题 DP || 多重背包 )

题意 : 有 n 种面额的硬币,给出各种面额硬币的数量和和面额数,求最多能搭配出几种不超过 m 的金额? 分析 : 这题可用多重背包来解,但这里不讨论这种做法。 如果之前有接触过背包DP的可以自然想到DP数组的定义 > dp[i][j] 表示…

css用hover制作下拉菜单

首先我们的需求就是 制作一个鼠标移动到某个区域就会有下拉菜单的弹出,这样会有更多的子类内容,示例代码如下: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>*{mar…

mysql 字典索引_【大白话mysql】你真的了解 mysql 索引吗?

本文来源于公众号&#xff1a; 跬步匠心什么是索引&#xff1f;当我们使用汉语字典查找某个字时&#xff0c;我们会先通过拼音目录查到那个字所在的页码&#xff0c;然后直接翻到字典的那一页&#xff0c;找到我们要查的字&#xff0c;通过拼音目录查找比我们拿起字典从头一页一…

mysql使用jtable_jtable 的简单使用

做后台管理管理系统时&#xff0c;基于ajax的数据操作和富有表现力的数据绑定插件jtable绝对是一个不错的选择&#xff0c;他接收来自服务器端的json格式的数据。而且他是一款开源的基于jquery和jquery ui的插件&#xff0c;您可以根据自己的需要修改其表现&#xff0c;如css&a…

java自定义菜单跳转页面_微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解...

微信公众号开发 自定义菜单请先读完本文再进行配置开发请先前往微信平台开发者文档阅读“网页授权获取用户基本信息”的接口说明在微信公众账号开发中&#xff0c;往往有定义一个菜单&#xff0c;然后用户点击该菜单就进入用户个人中心的功能&#xff0c;通常应用于各个公众账号…

贝叶斯理论基础理解

从贝叶斯方法谈到贝叶斯网络&#xff1a; http://blog.csdn.net/zdy0_2004/article/details/41096141 1 思考模式 比如往台球桌上扔一个球&#xff0c;这个球落会落在何处呢&#xff1f;如果是不偏不倚的把球抛出去&#xff0c;那么此球落在台球桌上的任一位置都有着相同的机…

C++如何实现DNS域名解析转

C如何实现DNS域名解析 这片文章介绍了C如何实现DNS域名解析&#xff0c;还有对相关技术的介绍&#xff0c;代码很详细,需要的朋友可以参考下一、概述 现在来搞定DNS域名解析&#xff0c;其实这是前面一篇文章C实现Ping里面的遗留问题&#xff0c;要干的活是ping的过程中画红线的…