自定义快捷键
1.定义模板配置
1.1.创建模板
在设置( File -> Settings )中 编辑器( Editor )
找到 实时模板 ( Live Templates ) -> + 加号 -> 模板组 ( Template Group… )
输入 模板组 名称
选中 新建的组 -> +加号 -> 实时模板 ( Live Template )
1.2.设置模板
打开模板设置界面
1 : 模板 缩写 ( Addreviation ) , 如 dd
2 : 模板文本 ( Template text ) , 本例为 JDBC 的基本代码
注意 在其中 SQL 部分为 $EXPR$
, 此处为占位符, 会被当前复制的内容替换 也可以进行函数配置
“”" 模板字符串 是 JDK 13以后增加的新的语法
// 1.连接数据库
// 1.1.加载驱动
String driver = "com.mysql.cj.jdbc.Driver";
Class.forName(driver);
// 1.2.获取连接
String url = "jdbc:mysql://localhost:3306/webshop2024";
String user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
// 2.操作数据库
// 2.1.创建 声明对象
Statement statement = conn.createStatement();
// 2.2.执行sql语句 这里 使用 $EXPR$ 使用模板占位符
String sql = """
$EXPR$
""";
ResultSet resultSet = statement.executeQuery(sql);
// int count = statement.executeUpdate(sql);
// 3.处理结果集
// 3.1.结果集元数据
ResultSetMetaData metaData = resultSet.getMetaData();
// 3.2.封装结果集
List<Map<String, Object>> list = new ArrayList<>();
while (resultSet.next()) {
Map<String, Object> map = new HashMap<>();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
String columnName = metaData.getColumnName(i);
Object value = resultSet.getObject(columnName);
map.put(columnName, value);
}
list.add(map);
}
// 4.关闭资源
// 4.1.关闭结果集
resultSet.close();
// 4.2.关闭声明
statement.close();
// 4.3.关闭连接
conn.close();
// System.out.println(count);
for (Map<String, Object> map : list) {
System.out.println(map);
}
3 : 定义( Define ) , 设置应用场景, 这里选择 java
4 : 编辑变量 ( Edit variables ) , clipboard( 剪切板 ) 内容
1.3.使用自定义模板
先 复制 要 使用的SQL语句 , 如:
select advert_type_id, advert_type_name, advert_type_info, advert_type_max from advert_type
在 java类中的 合适位置 , 输入 dd, 等待 提示面板出现 后 , 回车( enter )后, 模板代码 就出现在 相应的位置
2.idea变量函数
表达式 | 含义 |
---|---|
annotated() | 返回具有指定注解的类,方法或字段名 |
arrayVariable() | 返回当前范围内数组变量,最近的优先展示 |
lineCommentStart() | 返回当前语言指示行注释开始的字符 |
blockCommentStart() | 返回当前语言指示块注释开始的字符 |
blockCommentEnd() | 返回当前语言指示块注释结束的字符 |
commentStart() | 返回当前语言指示注释开始的字符,对有行注释的返回行注释开头 |
commentEnd() | 返回当前语言指示注释结束的字符,对有行注释的返回空(行注释通常没有结束字符) |
camelCase() | 将字符串转换为驼峰形式 |
snakeCase() | 将字符串转换为下划线分割形式 |
spaceSeparated() | 将字符串转换为空格分开形式 |
spacesToUnderscores() | 将字符串的空格替换为下划线 |
capitalize() | 将字符串首字母设为大写 |
capitalizeAndUnderscore() | 将字符串转换为大写并用下划线隔开 |
decapitalize() | 将字符串首字母设为小写 *** |
underscoresToCamelCase() | 将下划线形式字符串转换为驼峰形式 |
underscoresToSpaces() | 将下划线形式字符串转换为空格隔开形式 |
lowercaseAndDash() | 将字符串转为小写并使用中划线分割 *** |
escapeString() | 将字符串中的特殊符号进行转义,便于在java字符串中使用 |
substringBefore(, ) | 截取字符串在之前的部分 |
firstWord() | 返回字符串中的首个单词 |
castToLeftSideType() | 获取左侧变量的类型判断是否需要强转 |
rightSideType() | 获取右侧表达式的变量类型 |
className() | 返回当前所在类(在内部类则返回内部类)类名 |
currentPackage() | 返回当前所在包名 |
qualifiedClassName() | 返回当前所在类(在内部类则返回内部类)的全限定类名(包+类名) |
classNameComplete() | 触发类名相关的代码补全 |
clipboard() | 返回系统剪贴板的内容 *** |
complete() | 调用一次代码补全,相当于调用一次Ctrl+Space |
completeSmart() | 调用一次智能代码补全,相当于调用一次Ctrl+Alt+Space |
componentTypeOf() | 返回数组类型 |
concat(, …) | 拼接字符串 |
date([format]) | 指定格式化方式返回当前系统时间字符串(根据SimpleDateFormat格式) |
time([format]) | 指定格式化方式返回当前系统时间字符串(无日期,根据SimpleDateFormat格式) |
descendantClassesEnum() | 返回指定类的子类 |
lineNumber() | 返回当前行行号 |
enum(, …) | 返回建议的字符串列表 |
expectedType() | 自动识别并返回期望的类型,一般用于赋值,方法参数,返回语句处。 |
fileName() | 返回当前文件名(带拓展名) |
fileNameWithoutExtension() | 返回当前文件名(不带拓展名) |
filePath() | 返回当前文件路径(带拓展名) |
fileRelativePath() | 返回当前文件相对当前项目的路径(带拓展名) |
groovyScript(, [arg, …]) | 执行作为字符串形式传递的groovy脚本 |
guessElementType() | 返回集合中元素的类型 |
iterableComponentType() | 返回可迭代对象的类型 |
iterableVariable() | 返回当前范围内可迭代类型对象,最近的优先展示 |
methodName() | 返回当前所在方法名 |
methodParameters() | 返回当前所在方法的所有参数名 |
methodReturnType() | 返回当前所在方法的返回类型 |
regularExpression(, , ) | 查找字符串中满足的所有部分并替换为 *** |
typeOfVariable() | 返回变量的类型 |
variableOfType() | 返回当前范围内满足类型条件的变量,最近的优先展示 |
suggestFirstVariableName() | 返回当前范围内满足类型条件的部分变量,最近的优先展示和variableOfType类似但不推荐true,false,this,和super |
subtypes() | 返回指定类型的子类型 |
suggestIndexName() | 返回当前范围中未使用的第一个常用迭代下标变量名(i,j,k等) |
suggestVariableName() | 根据变量命名规则的代码风格设置返回建议的变量名 |
suggestShortVariableName() | 建议的变量名精简版 |
user() | 返回当前系统的用户名称 |