springboot笔记整理
在搭建简单的demo程序时 出现如上报错问题, 经查询得出 关于idea 中使用mybastis报出 Invalid bound statement (not found)的错误解决方案 mapper.xml没有按照传统的maven架构进行放置 在pom.xml文件中配置build扫描目录就可以
异常java.lang.UnsupportedOperationException] with root cause
在查询sql语句返回string集和的时候 以为返回值是list<string>类型 设置了resultType = 'java.util.List' 结果报了上述的错误 应该修改为 java.lang.String类型
在使用idea运行springboot程序时候,由eclipse环境切换过来所以导致了 application.java 启动失败 尝试了
通过maven来设置。启动成功,然而程序没法进行调试 打断点进不去程序里。
<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>false</fork></configuration></plugin></plugins>
添加<fork>标签false后才可以进行调试
在前后端分离中会出现浏览器跨域的问题。。
做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程。但是新版本的chrome浏览器提高了跨域设置的门槛,原来的方法不再适用了。下面笔者简单介绍一下新版本chrome的跨域设置方法。
- ---------版本号49之前的跨域设置
先介绍一下老方法,参考了一些网上的教程,其实直接在打开命令上加--disable-web-security就可以了。
具体做法为:
1.下载并安装好chorme浏览器后在桌面找到浏览器快捷图标并点击鼠标右键的属性一栏。
2.在属性页面中的目标输入框里加上 --disable-web-security 如下图所示:
-----------版本号49之后的chrome跨域设置
chrome的版本升到49之后,跨域设置比以前严格了,在打开命令上加--disable-web-security之后还需要给出新的用户个人信息的目录。众所周知chrome是需要用gmail地址登录的浏览器,登录后就会生成一个存储个人信息的目录,保存用户的收藏、历史记录等个人信息。49版本之后,如果设置chrome浏览器为支持跨域模式,需要指定出一个个人信息目录,而不能使用默认的目录,估计是chrome浏览器怕用户勿使用跨域模式泄露自己的个人信息(主要是cookie,很多网站的登录token信息都是保存在cookie里)。
具体做法为:
1.在电脑上新建一个目录,例如:C:\MyChromeDevUserData
2.在属性页面中的目标输入框里加上 --disable-web-security --user-data-dir=C:\MyChromeDevUserData,--user-data-dir的值就是刚才新建的目录。
3.点击应用和确定后关闭属性页面,并打开chrome浏览器。
再次打开chrome,发现有“--disable-web-security”相关的提示,说明chrome又能正常跨域工作了。
跨域成功后,首页换成了google的welcome页面,同时原来收藏的链接和历史记录都不见了,而C:\MyChromeDevUserData目录下则生成了新的个人信息相关的文件。
海量小文件存储测试---存文件系统还是存数据库好?
设置了sql字段 art_comment 存储文件服务器地址 不设置将其存储文件内容
查询汉字数量程序
def test():s= "你好我我是你爸爸3哈哈哈2213将131313131的撒谎的撒谎的撒肯定撒空间l/s/w/z.,.,..j"mypattern = re.compile('[\u4e00-\u9fa5]+')rss = mypattern.findall(s)rss = "".join(rss)print(len(rss))if __name__ == '__main__':test()
Python获取指定文件夹下的文件名
# -*- coding: utf-8 -*-import osdef file_name(file_dir):for root, dirs, files in os.walk(file_dir):print(root) #当前目录路径print(dirs) #当前路径下所有子目录print(files) #当前路径下所有非目录子文件
for root, dirs, files in os.walk(file_dir):print(root) #当前目录路径print(dirs) #当前路径下所有子目录for name in files:# print(name)if name not in filenames:print(name)os.remove(os.path.join("F:\\New folder1"+"\\"+name))# print(files) #当前路径下所有非目录子文件if __name__ == '__main__':file_name("F:\\New folder1");outname = "检索的"
当springboot项目中 把前端页面复制在static templates中出现 无法引用css样式的问题
静态资源被拦截的 yaml配置:spring: mvc: static-path-pattern: /static/**
mappedBy reference an unknown target entity property: com.zryy.blog.pojo.Blog.types in com.zryy.blog.pojo.Type.blogs org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.zryy.blog.pojo.Blog.types in com.zryy.blog.pojo.Type.blogs
提示报这个错误是
@OneToMany(mappedBy = "type") mappedBy对应的是 one表中定义的字段 当时是types 没法找到该字段 所以报错
Query类详解 :
本篇介绍Query类,Query是一个查询参数类,封装了查询条件,分页,排序等功能。
https://blog.csdn.net/thc1987/article/details/79347054
@RequestMapping用法详解:
https://blog.csdn.net/renanrenan/article/details/84654362
IDEA 工具中的调试功能 增加generated-request调试api接口工具
https://hollis.blog.csdn.net/article/details/104322534
apach.http包导入依赖 org.apache.http
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
https://github.com/fighting41love/funNLP/tree/master/data github上的语料库 恐暴、医疗、分类等
https://github.com/codemayq/chinese_chatbot_corpus 八卦论坛资料
使用showdown.js将Markdown文档转换为HTML
MySQL 中LIMIT的使用详解
Mysql的limit用法 以及优化sql序列速度方法
MySQL 的分页查询 SQL 语句
使用Layui分页查询数据
关于layui的分页查询_table实现
layui的form表单
JS 结点(属性操作)隐藏与显示(display)
JS switch case语句详解
错误解决:There is no getter for property named 'id' in class 'java.lang.String'
使用mybatis传入参数,如果在mappin.xml中使用<if>标签判断该参数是否为空,通常会报以上异常,解决方法:在接口中该方法的参数前加上@Param("参数名")注解,即可
接口:
public interface UserMapper {
//根据名称查询用户
List<MAP> queryUserByName(@Param("name")String name);
}
mapping.xml:
<mapper namespace="com.mybatis.test.dao.UserMapper">
<select id="queryUserByName" parameterType="String" resultType="java.util.HashMap">
select
t_id as id,
t_name as name,
t_password as password
from mybatis_user
where 1=1
<if test="name != null">
and t_name=#{name}
</if>
order by t_id
</select>
</mapper>
Mybatis 中xml和注解映射,so easy啦
目前文章页面设置的是将图片保存在服务器文件夹下, 数据库只保存一个src地址,并没有将图片信息保存在字段中
layui table表格分页从0开始,自定义请求参数 目前layui前端传送的currentPage是1 sql查询中会丢失数据 应设置currentPage为0 这样查询就全部,不知缘由 可能是layui的一个bug
导入pom.xml文件的顺序, ----》 版本号 、 jar包(依赖) 、插件(resource 设置src/main/java 配置文件路径等) 、plug
--------------------------------------------------------------------------------------
springSecurity
首先是pom文件导入
spring-boot-starter-security
thymeleaf-extras-springsecurity5
sping-boot-starter-web
thymeleaf-extras-java8time
spring-boot-starter-test
编写SecurityConfig 配置文件
extends
WebSecurityConfigurerAdapter
package com.springSecurity.config;import org.apache.tomcat.util.security.MD5Encoder;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;//AOP 拦截器
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {//授权@Overrideprotected void configure(HttpSecurity http) throws Exception {//首页可以访问,功能页只有对应有权限的人才可以访问。//请求授权的规则http.authorizeRequests().antMatchers("/").permitAll()
// .antMatchers("/views/level1/**").hasRole("vip1") 这样设置url地址错误.antMatchers("/level1/**").hasRole("vip1").antMatchers("/level2/**").hasRole("vip2").antMatchers("/level3/**").hasRole("vip3");//设置没有权限会跳到登陆页面,需要开启登陆的页面 而且这个页面的名字是指定的,且默认设置请求转到/login 继而转到login.html页面////定制登陆页//toLogin是首页的登陆发送的请求地址, login.html中login是登陆页表单提交发送的请求地址 要和下面securityconfig-http.forLogin设置的一致//http.formLogin().usernameParameter("usr") //这里设置usernameParameter是前端表单提交传参名称 默认是username.passwordParameter("pwd").loginProcessingUrl("/login");//防止网站攻击, springboot默认开启了http.csrf().disable(); //关闭crsf功能 登出失败可能存在的原因//注销 开启注销功能 跳到首页http.logout().logoutSuccessUrl("/");//开启rememberMe 实质上是把用户名和密码添加到cookie中去了 默认保存两周//自定义rememberMehttp.rememberMe().rememberMeParameter("remember");}//认证 springboot 2.1.x可以直接使用 其他版本会报错: There is no PasswordEncoder mapped for the id "null"//密码编码 PasswordEncoder//在spring Security 5.0+中增加了很多的加密方式 明文密码不安全。如下面的123456@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {//可以从数据库里获取 信息认证 也可以从内存中获取信息认证//这些数据正常从数据库中读auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()).withUser("zhiqiang").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3").and()
// .withUser("root").password("123456").roles("vip1","vip2","vip3")//上述代码明文密码没有添加passwordEncoder.encode.withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3").and().withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1");}
}
mysql报错:Cause: java.sql.SQLException: sql injection violation, syntax error: syntax error, error in
mapper文件中 少加了一个,逗号
设置select下拉框不能选择 :
jquery设置:$("#id").attr("disabled","disabled");$("#id").removeAttr("disabled");
用js绑定onclick事件中的this
刷新当前页面 localtion.reload()
UUID.randomUUID().toString() 的作用
Field 'id' doesn't have a default value 错误的解决办法 如果你在写web项目的时候,然后在写添加的方法的时候,出现 Field 'id' doesn't have a default value 这个错误,那就什么都不用看 直接找到你的数据库,然后打开设计表,看下面自增递增是否勾选上了,如果没有勾上再去执行 就可以了。(这个问题困扰了我半天时间)
mysql外键约束无法删除数据的情况解决办法 先删除子表的数据,然后再删除主表的数据。
mysql之外键约束
JPA使用注解 设定字段类型为TEXT类型
@Lob@Column(columnDefinition="TEXT")public String getImgUrls() {return imgUrls;}public void setImgUrls(String imgUrls) {this.imgUrls = imgUrls;}
vue forEach循环数组拿到自己想要的数据
Window sessionStorage 属性
获取html 标签的属性值
获取html 标签的属性值分另种情况
其一,获取原有属性,其方法是.属性
其二:获取自定义属性方法:其方法是.getAttribute(‘属性’)或.attributes(‘属性’).nodeValue
jq && js获取input的value值
①var user_id = document.getElementById('user_id').value;
②var user_id = $('#user_id').val();
Missing URI template variable 'employeeNumber' for method parameter of type String:
SpringMvc报错Missing URI template variable ‘id‘ for method parameter of type long
单向多对一@ManyToOne的使用和理解:
单向就是java的一个实体类可以获取另一个实体类,多对一就是比如多个员工对应一个部门,外键在那个表,那个表就是多,关系配在多方。`
//员工实体类
@Entity//将实体类映射到数据库表
public class Employee extends BaseDomain {private String username;private String password;private String email;private Integer age;private String headImage; //头像//多个员工对应一个部门 多对一配置到多方//单向就是java的一个实体类可以获取另一个实体类//外键在那个表,那个表就是多,外键在Employee类,所以Employee是多方@ManyToOne(fetch = FetchType.LAZY)//配置懒加载//员工关联部门自己的部门id字段@JoinColumn(name="department_id")//部门类private Department department;
Mybatis异常There is no getter for property named 'XXX' in 'class java.lang.String'
11.当入参为 string类型时 (包括java.lang.String.) 我们使用#{xxx}引入参数.会抛异常There is no getter for property named 'XXX' in 'class java.lang.String'
2.解决方法一:把#{xxx}修改为 #{_parameter} 即可
<select id="getBookingCount" resultType="int" parameterType="string">select count(*) from TB_EMPC_BOOKING_ORDER Twhere (t.state = '1' or t.state = '2')and t.appointmenttime = #{_parameter}</select>
3.解决方法二:可以在方法中提前定义:
public int methodName(@Param(value="state") String state ){...}
4.原因:Mybatis默认采用OGNL解析参数,所以会自动采用对象树的形式取 string.xxx 值,如果没在在方法中定义,则会抛异常报错。
https://blog.csdn.net/qing_gee/article/details/47122227
报错:Optional int parameter 'id' is present but cannot be translated into a null value due to being de
遇到这个错误就是把参数int 改成Integer
这个错误是因为java获取页面数据的时候,id值可能为空,而int的默认值为0,若想能够接受NULL的值,将int换成integer即可解决。
遇到这个错误就是把参数int 改成Integer
大家以后在springmvc接受参数的时候,尽量不要使用基本数据类型,当然你一定要使用的话,可以把defaultValue加上,这样就不会报这个错误了。
注意:就算你加上required=false, 一样也是不行的。
MySQL中使用LIMIT分页
需求:客户端通过传递pageNum(页码)和pageSize(每页显示的条数)两个参数去分页查询数据库表中的数据。
我们知道MySQL提供了分页函数limit m,n,但是该函数的用法和需求不一样,所以就需要根据实际情况去改写以满足需求。分析如下:
查询第1条到第10条数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;
查询第10条到第20条数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;
查询第20条到第30条数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;
通过上面的分析,可以归纳得出符合需求的分页SQL伪代码是:select * from table limit (pageNum-1)*pageSize,pageSize。总而言之,我们只需要告诉数据库要从第几行开始拿多少条数据就行了。
但是,limit语句不支持计算,因此,需要从外部传参(pageNum-1)*pageSize的计算结果,即在Java中计算出来。令rowIndex = (pageNum-1)*pageSize,rowIndex常用的计算方法如下:
//计算行号
public static int getRowIndex(int pageNum, int pageSize){return (pageNum> 0) ? (pageNum- 1) * pageSize : 0;
}
limit只是限制条数 要翻页的话 要 (offsize-1)* 10
layui 表格格式化时间
{field: 'pressTime', title: '发稿时间', width:180,templet:'<div>{{ layui.util.toDateString(d.pressTime, "yyyy-MM-dd HH:mm:ss") }}</div>'}
【Java】java.sql.SQLDataException: Cannot determine value type from string
There was an unexpected error (type=Internal Server Error, status=500). Error attempting to get column 'type' from result set. Cause: java.sql.SQLDataException: Cannot determine value type from string '222-2-21' ; Cannot determine value type from string '222-2-21'; nested exception is java.sql.SQLDataException: Cannot determine value type from string '201577D0510' org.springframework.dao.DataIntegrityViolationException: Error attempting to get column 'u_account' from result set. Cause: java.sql.SQLDataException: Cannot determine value type from string '201577D0510' ; Cannot determine value type from string '201577D0510'; nested exception is java.sql.SQLDataException: Cannot determine value type from string '201577D0510' at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:84) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) at com.sun.proxy.$Proxy65.selectList(Unknown Source)
查看字段和属性都没有问题。
最后尝试建立无参构造函数解决问题。缺少了mapper层封装对象时与之查询字段一一对应的实体类构造器
添加一个构造器,问题解决
Vue.js实现文章评论和回复评论功能
jquery修改a标签的href链接和文字
jQuery获取某标签的父标签
前端: 鼠标悬浮变小手
为某个标签加样式,是鼠标悬浮变小手:
cursor:pointer; 变小手
text-decoration:none; 没有下划线
例如:<a href=“” style="cursor:pointer;text-decoration:none;" >
点赞+1特效
Mybatis出现Mapped Statements collection already contains value for :
一已经有重复的id
springboot笔记整理相关推荐
- SpringBoot笔记整理(四)
SpringBoot笔记整理(一) SpringBoot笔记整理(二) SpringBoot笔记整理(三) SpringBoot笔记整理(四) 1.SpringMVC自动配置 以下是SpringBoo ...
- SpringBoot笔记整理(三)
SpringBoot笔记整理(一) SpringBoot笔记整理(二) SpringBoot笔记整理(三) SpringBoot笔记整理(四) Web开发 1.使用SpringBoot: 1)创建Sp ...
- SpringBoot笔记整理(二)
SpringBoot笔记整理(一) SpringBoot笔记整理(二) SpringBoot笔记整理(三) SpringBoot笔记整理(四) Spring Boot与日志(日志框架.日志配置) 1. ...
- SpringBoot笔记整理(一)
SpringBoot笔记整理(一) SpringBoot笔记整理(二) SpringBoot笔记整理(三) SpringBoot笔记整理(四) 1.使用Spring Initializer快速创建Sp ...
- 动力节点SpringBoot笔记整理
本文出自:https://stilljin.blog.csdn.net/article/details/89980994 一丶概述 去年年底转后台不久,就接手了公司后台项目,虽然暂无开发需求,IDEA ...
- SpringBoot学习笔记整理详细
写在前面:欢迎来到「发奋的小张」的博客.我是小张,一名普通的在校大学生.在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们 ...
- Kafka入门篇学习笔记整理
Kafka入门篇学习笔记整理 Kafka是什么 Kafka的特性 应用场景 Kafka的安装 单机版部署 集群部署环境准备 Kafka 2.x集群部署 Kafka 3.x集群部署 监听器和内外网络 K ...
- 千锋 Vue 详细笔记整理
视频笔记是根据B站 千锋 涛哥 - SpringBoot+vue+前后端分离项目<锋迷商城>实战课-完结版 进行整理的 笔记可上 gitee仓库 自取 千锋 Vue 笔记整理 一.vue ...
- 慕课Java第三季学习及笔记整理
学习网址及截图和部分图片来源:https://www.imooc.com/learn/110 慕课Java第三季学习及笔记整理 一.异常与异常处理 1-1 java异常简介 概念 异常体系结构 1-2 ...
最新文章
- rich-text 图片控制_武汉煤制工业级乙二醇图片
- Python正则表达式-2
- 听说”双11”是这么解决线上bug的
- 帝国cms与mysql数据库_帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
- DATAGUARD STANDBY 服务器归档日志管理
- javascript --- XMLHttp2级、CORS(跨域资源共享)
- VirtualBox的Linux虚拟机访问Windows7的文件
- Jmeter简单的登录压力测试(使用json发送post请求)
- python如果选择不在列表里_使用python中的in ,not in来检查元素是不是在列表中的方法...
- javascript Date
- V4L2 获取设备支持的分辨率
- bzoj5064 B-number 数位dp
- BDBR和BD-PSNR
- 电视机hdr是什么功能
- 查询局域网内在线电脑IP地址
- vue组件走马灯_Vue-component | 文字走马灯组件
- java对图片进行压缩处理
- 评选 cms_十大评选和编辑精选:一月评论
- 王坚博士:进入空气稀薄地带
- 六级核心词汇61~100