栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java程序及数据库常见问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java程序及数据库常见问题

java数据库常见问题
  • 一 常见数据库语法
    • 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映射文件新增判断参数

一 常见数据库语法 Mysql 1日期转换
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.635
2为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.635
2为null判断 navicat常用设置 1navicat设置默认值

在设置默认值上字符串数字直接’0’ 或 0

2navicat设置输入时间

timestamp : CURRENT_TIMESTAMP
datetime: now()

二 java程序 springboot项目注解配置问题 1springboot项目启动类注解继承SpringBootServletInitializer 类目的

作用: 继承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);
List getDeviceByCode(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 //单条数据
        
    
7Mybatis映射文件返回Map映射或者返回List列表映射
dao层:
Map getList(String device);
List>  getList(String device);
xml层: 用resultType对应返回实体类包名确定单条数据用WeatherDeviceVo接收 非确定条数需要用List接收

        select
        to_number(avg(info.${columname })||'','99999.99') as "num",
        to_char(info.callback_time,${sim }) as "timeInterval"
        from t_st_data_weather_station_info info
        
            
                and info.n_date >= #{beginTime}
            
            
                and info.n_date <= #{endTime}
            
            
                and info.device_id = #{device}
            
        
    
9Mybatis映射文件接收实体类参数(添加修改)
int millManagementDao.addApply(Entity entity);

		insert 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});
	
10Mybatis映射文件返回实体类映射resultMap
    
        
        
        
        
        
        
    
property:为实体类属性
column: 为sql返回字段


List list = millDao.getList(params);
11Mybatis映射文件新增判断参数

        insert into device
        
            
                id,
            
            
                device_code,
            
            
                device_name,
            
            
                device_type,
            
        

        
            
                #{id},
            
            
                #{deviceCode},
            
            
                #{deviceName},
            
            
                #{deviceType},
            
        
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/603151.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号