- 一 常见数据库语法
- Mysql
- 1日期转换
- 2为null判断
- oracle
- 1日期转换
- 2为null判断
- PLSQL
- 1日期转换
- 2为null判断
- sqlserver
- 1日期转换
- 2为null判断
- navicat常用设置
- 1navicat设置默认值
- 2navicat设置输入时间
- 二 java程序
- springboot项目注解配置问题
- 1springboot项目启动类注解继承SpringBootServletInitializer 类目的
- 2springboot项目@MapperScan注解
- 3springboot项目@Mapper
- 4Mybatis映射文件路径classpath*与classpath区别
- 5Mybatis映射文件.xml 中判断注解
- 6Mybatis映射文件返回实体类映射或者返回实体类列表映射
- 7Mybatis映射文件返回Map映射或者返回List
- 8Mybatis映射文件接收map参数(查询)
- 9Mybatis映射文件接收实体类参数(添加修改)
- 10Mybatis映射文件返回实体类映射resultMap
- 11Mybatis映射文件新增判断参数
date_format函数: 定义和用法 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。 语法 DATE_FORMAT(date,format) date 参数是合法的日期。format 规定日期/时间的输出格式。 STR_TO_DARE(date,format)将字符串转日期类型 可以使用的格式有: 格式 描述 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12) %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位 实例 下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间: DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') DATE_FORMAT(NOW(),'%m-%d-%Y') DATE_FORMAT(NOW(),'%d %b %y') DATE_FORMAT(NOW(),'%d %b %Y %T:%f') 结果类似: Dec 29 2008 11:45 PM 12-29-2008 29 Dec 08 29 Dec 2008 16:25:46.6352为null判断
SELECt ISNULL('i like yanggb'); // 0
oracle
1日期转换
to_date函数:
//注意:java中MM代表月份,mm代表分钟,但sql不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle中用mi代替分钟。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
to_char函数:
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
D 一周中的星期几
DAY 天的名字,使用空格填充到9个字符
DD 月中的第几天
DDD 年中的第几天
DY 天的简写名
IW ISO标准的年中的第几周
IYYY ISO标准的四位年份
YYYY 四位年份
YYY,YY,Y 年份的最后三位,两位,一位
HH 小时,按12小时计
HH24 小时,按24小时计
MI 分
SS 秒
MM 月
Mon 月份的简写
Month 月份的全名
W 该月的第几个星期
WW 年中的第几个星期 1.日期时间间隔操作
当前时间减去7分钟的时间
select sysdate,sysdate - interval ’7’ MINUTE from dual
当前时间减去7小时的时间
select sysdate - interval ’7’ hour from dual
当前时间减去7天的时间
select sysdate - interval ’7’ day from dual
当前时间减去7月的时间
select sysdate,sysdate - interval ’7’ month from dual
当前时间减去7年的时间
select sysdate,sysdate - interval ’7’ year from dual
时间间隔乘以一个数字
select sysdate,sysdate - 8 *interval ’2’ hour from dual
2为null判断
NVL函数是将NULL值的字段转换成默认字段输出。 NVL(expr1,expr2) expr1,需要转换的字段名或者表达式。PLSQL 1日期转换
to_char(bslm.sb_report_time,'yyyy-MM-dd hh24:mi:ss')
to_timestamp(to_char(info.callback_time,' yyyy-MM-dd'), 'yyyy-MM-dd') >= to_timestamp(#{beginTime},'yyyy-MM-dd')
2为null判断
COALESCE(t.mill_number,'')
IsNull 如果是Null,就返回指定的值,否则返回原值。 select userName,IsNULL(address,'无') from [user]...sqlserver 1日期转换
使用 CAST: CAST ( expression AS data_type )//将字符串转换成特定的各式 定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数。 CONVERT() 函数可以用不同的格式显示日期/时间数据。 语法 CONVERT(data_type(length),data_to_be_converted,style) data_type(length) 规定目标数据类型(带有可选的长度)。 data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。 可以使用的 style 值: Style ID Style 格式 100 或者 0 mon dd yyyy hh:miAM (或者 PM) 101 mm/dd/yy 102 yy.mm.dd 103 dd/mm/yy 104 dd.mm.yy 105 dd-mm-yy 106 dd mon yy 107 Mon dd, yy 108 hh:mm:ss 109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM) 110 mm-dd-yy 111 yy/mm/dd 112 yymmdd 113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h) 114 hh:mi:ss:mmm(24h) 120 或者 20 yyyy-mm-dd hh:mi:ss(24h) 121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h) 126 yyyy-mm-ddThh:mm:ss.mmm(没有空格) 130 dd mon yyyy hh:mi:ss:mmmAM 131 dd/mm/yy hh:mi:ss:mmmAM 实例 下面的脚本使用 CONVERT() 函数来显示不同的格式。 我们将使用 GETDATE() 函数来获得当前的日期/时间: CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113) 结果类似: Dec 29 2008 11:45 PM 12-29-2008 29 Dec 08 29 Dec 2008 16:25:46.6352为null判断 navicat常用设置 1navicat设置默认值
在设置默认值上字符串数字直接’0’ 或 0
timestamp : CURRENT_TIMESTAMP
datetime: now()
作用: 继承SpringBootServletInitializer可以使用外部tomcat,自己可以设置端口号,项目名。不需要用外部tomcat的话继承不继承都可以。
如将项目打成war包 解压通过外部tomcat访问就需要继承这个类重写configure
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@MapperScan(basePackages = {"com.zlxd.dao","com.zlxd.modules.*.dao"})
@EnableScheduling
public class ApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ApiApplication.class);
}
}
当我们把项目打成jar直接运行访问的时候不需要继承这个类
2springboot项目@MapperScan注解作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
添加位置:是在Springboot启动类上面添加,
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@MapperScan(basePackages = {"com.zlxd.dao","com.zlxd.modules.*.dao"})
@EnableScheduling
public class ApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ApiApplication.class);
}
}
3springboot项目@Mapper
作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类
添加位置:接口类上面
@Mapper
public interface UserDAO {
//代码
}
4Mybatis映射文件路径classpath*与classpath区别
需要加载路径为com/thomas/base/mapper和com/thomas/bu/mapper/business下的所有mapper文件
and counts=1
and counts=1
and counts=2
6Mybatis映射文件返回实体类映射或者返回实体类列表映射
dao层: WeatherDeviceVo getDeviceByCode(String deviceCode); List7Mybatis映射文件返回Map映射或者返回ListgetDeviceByCode(String deviceCode); xml层: 用resultType对应返回实体类包名确定单条数据用WeatherDeviceVo接收 非确定条数需要用List 接收 SELECT d.ID, d.device_code AS "deviceCode", d.device_name AS "deviceName", d.device_type AS "deviceType", d.device_ip AS "deviceIp", d.device_user AS "deviceUser", d.device_pwd AS "devicePwd", d.longitude, d.latitude, d.altitude, d.detail, d.station_code AS "stationCode", d.change_time AS "changeTime", d.last_collect_time AS "lastCollectTime", d.create_user AS "createUserId", to_char(d.create_time,'yyyy-MM-dd hh24:mi:ss') AS "createTime", d.update_user AS "updateUserId", d.update_time AS "updateTime", d.remarks , o.name FROM t_st_base_device d left join ptlorganization o on d.station_code = o.code and d.del_flag = '0' and device_code = #{deviceCode} and del_flag = '0' limit 1 //单条数据
dao层: Map8Mybatis映射文件接收map参数(查询)getList(String device); List
HashMap9Mybatis映射文件接收实体类参数(添加修改)params = new HashMap<>(); params.put("beginTime",beginTime); params.put("endTime",endTime); params.put("device",device); List
int millManagementDao.addApply(Entity entity);10Mybatis映射文件返回实体类映射resultMapinsert into t_os_pest_mill_apply ("id", "mill_number","head_person", "head_person_phone", "create_person_id","update_person_id","unit_id","start_time","end_time") values (#{id}, #{millNumber}, #{headPerson},#{headPersonPhone}, #{createPersonId}, #{updatePersonId},#{organCode},#{startTime},#{endTime});
property:为实体类属性
column: 为sql返回字段
List list = millDao.getList(params);
11Mybatis映射文件新增判断参数
insert into device id, device_code, device_name, device_type, #{id}, #{deviceCode}, #{deviceName}, #{deviceType},



