1、mybatis.type-aliases-package的作用
指定实体类所在的位置,在mapper.xml映射文件中不需要写出实体类的完整路径,只需要写出类名即可。
2、spring boot启动就关闭的原因
需要加入以下依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3、application.properties和application.yml的区别
(1)主要是内容格式的区别和优先级不同,properties文件后加载,会覆盖yml。(2)properties和yml均可以有多,以便进行不同环境的配置。
4、mybatis中$和#区别
(1)#传入的参数在SQL中显示为字符串,$传入的参数在SqL中直接显示为传入的值.
(2)#方式能够很大程度防止sql注入,$方式无法防止Sql注入;
5、springboot遇到定时任务@Scheduled不启动解决方案
在service上添加如下注解
@Component
@EnableScheduling
6、IDEA添加getter、setter方法的快捷键
IDEA 中添加 getter、setter 方法的快捷键 快捷键:Alt + insert
7、MyBatis使用大于等于之类的时候需要转义
比如<=,就是<=
8、MyBatis批量插入
注意需要在spring.datasource.url添加allowMultiQueries=true
<insert id="insertForeach" parameterType="java.util.List" useGeneratedKeys="false">
insert into user
( user_name,create_time)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.userName},
#{item.createTime}
)
</foreach>
</insert>
9、Java 中 Service 层和 DAO 层有必要每个类都加上接口吗?
忘记从哪里看到的,喜欢这个人的说法,如果一个项目需要多实现,则推荐使用接口。否则不需要使用接口。
10、mysql清理表,并恢复主键
truncate table 表名
11、Invalid bound statement (not found)出现原因和解决方法
1.mapper.xml中的namespace和实际的mapper文件不一致
2.mapper接口中的方法名和mapper.xml中的id标签不一致
3.上两步的问题都没有,可能是没有构建进去,打开target看看对应的mapper.xml文件在不在,如果不再请在检查pom.xml文件中是否配置了resource,确保pom.xml的中配置了resource,然后清理项目,重启idea,应该就ok了。
12、windows下修改mysql的max_allowed_packet
1、首先找到配置文件位置,如果不再C:\ProgramData\MySQL\MySQL Server 5.7\my.ini这个位置,可以在服务中查看其位置。
2、找到后配置文件后,打开找到max_allowed_packet修改,为你想要指定的大小。
# The maximum size of one packet or any generated or intermediate string, or any parameter sent by the
# mysql_stmt_send_long_data() C API function.
max_allowed_packet=400M
13、设置数据库的时区
下面连接字符串中黑体就是设置时区,如果是UTC,插入数据库时会和我们差8个小时(即使java中的时间是正确的)。
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/world?&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
14、Mybatis中实现批量更新的几种姿势
15、Mybatis批量查询
<?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.home.skydance.dao.UserMapper">
<resultMap id="BaseResultMap" type="com.home.skydance.entity.User">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="user_name" jdbcType="VARCHAR" property="userName" />
<result column="user_flag" jdbcType="SMALLINT" property="userFlag" />
<result column="create_time" jdbcType="DATE" property="createTime" />
<result column="action_flag" jdbcType="SMALLINT" property="actionFlag" />
<result column="svd_value" jdbcType="INTEGER" property="svdValue" />
<result column="thread_no" jdbcType="VARCHAR" property="threadNo" />
<result column="update_time" jdbcType="DATE" property="updateTime" />
</resultMap>
<select id="selectByDateTime" parameterType="map" resultMap="BaseResultMap">
select * from user where create_time <= #{time} limit #{start},#{limit}
</select>
</mapper>