jdbc中SQL语句拼接变量
前言
jdbc中SQL语句拼接变量的方法
一、字符串拼接
String url = "jdbc:hive2://192.168.1.139:10000/";
String user = "hadoop";
String passwd = "hadoop";
Class.forName("org.apache.hive.jdbc.HiveDriver");
Connection connection = DriverManager.getConnection(url, user, passwd);
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("show databases");
List<MetaTable> list = new ArrayList<>(10);
String sql ="selcet * from book where = "+user+" ";
PreparedStatement pstmt = connection.prepareStatement(sql);
例如:String sql ="selcet * from book where = “+user+” “;
执行的时候自动就把变量转换为字符串类型,”+user+"表示字符串,‘’是SQL的字符串和字符
两个双引号和变量拼接在一起,会把变量转化为字符串
执行SQL的时候是这样的selcet * from book where = hadoop;
二、String类中的format方法
format方法使用占位符进行格式化
常规类型、字符类型和数值类型的占位符格式:
%[index$][标识][最小宽度][.精度]转换符
日期和时间类型的占位符格式:
%[index$][标识][最小宽度]转换符
与参数不对应的占位符格式:
%[标识][最小宽度]转换符
其中index表示参数列表中的位置上的值
可用标识:
标识
含义-
在最小宽度内左对齐,不可与0标识一起使用
0
若内容长度不足最小宽度,则在左边用0来填充
对8进制和16进制,8进制前添加一个0,16进制前添加0x
结果总包含一个+或-号
空格
正数前加空格,负数前加-号
,
只用与十进制,每3位数字间用,分隔
(
若结果为负数,则用括号括住,且不显示符号
可用转换符:
转换符
含义b
布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false
n
平台独立的换行符, 也可通过System.getProperty(“line.separator”)获取
f
浮点数型(十进制)。显示9位有效数字,且会进行四舍五入。如99.99
a
浮点数型(十六进制)
e
指数类型。如9.38e+5
g
浮点数型(比%f,%a长度短些,显示6位有效数字,且会进行四舍五入)
s
字符串类型
c
字符类型
如:
String result1 = String.format(“花花今年%d岁,他住在%s,他的月工资有%.2f”, 18,“杭州市”,10000);
System.out.println(result1);
//输出:花花今年18岁,他住在杭州市,他的月工资有10000