IntelliJ IDEA中创建自己的代码模板,例如main函数和System.out.println()快捷输入


参考博文:

IntelliJ中的main函数和System.out.println()快捷键                               

IntelliJ IDEA 中如何设置如:sys直接输出一行等等的快捷编辑操作----即:代码的快捷编辑模板(Live Templates)设置

  1. IDE settings (Ctrl+Alt+s),选择打开 Live Templates 页面, 展开需要查看的模板组;
  2. 可以选择一个已有模板点击“Edit”进行修改,或者点击“Add”进行新模板的创建;
  3. Edit Live Template 对话框中,可以修改模板的缩写(Abbreviation);
  4. 在 Template Text 区域,可以编辑模板主体,包括普通文本和变量;变量以美元符‘$’开头和结尾(如$TYPE$),如果需要修改变量,可以点击"Edit Variables"按钮;
  5. Options 区域, 我们可以指定模板如果被展开或者重新格式化;
  6. Context 区域, 我们可以说明模板的语言以及在哪些编辑器需要识别模板的缩写;
  7. 修改完成后点击"OK"按钮即可;

同时,我们也可以直接从正在编辑的文本片段来生成模板,步骤如下:

  1. 在编辑器中,选择用于创建模板的文本片段;
  2. 在主菜单中,选择 Tools | Save as Live Template,会出现 Edit Live Template 对话框;
  3. Abbreviation 区域输入新模板的缩写;
  4. 输入模板主体,定义变量,模板组和相应选项;
  5. 修改完成后点击”OK";

在编辑模板变量的时候,即在点击"Edit Variables"后的"Edit Template Variables"对话框中,可以看到对变量的修改有四个属性,分别为名称(Name),表达式(Expression), 默认值(Default value)和如果变量已经定义是否略过(Skip if defined);

  1. 名称(Name),即在模板主体中变量的名称,不包括开头和结尾的$符号;
  2. 表达式(Expression),指定变量的表达式,它会自动计算相应的模板输入域;可以直接输入或者在下拉列表中选择预定义的函数;下拉列表中同时说明了函数参数的数量和类型(如果有的话);
  3. 默认值(Default value),指明一个字符串作为变量的的默认值,如果在扩展开的模板中,表达式在计算后没有给出任何结果,则模板会使用这个默认值;这个值只有在已经为变量指定了一个表达式的时候才会被使用;
  4. 如果变量已经定义是否略过(Skip if defined),如果选中这个选项,当模板展开后,变量已经有一个经过表达式计算后生成的值或一个默认值时,则直接略过,跳到下一个输入域上供用户编辑;
  5. 对话框右侧有两个按钮,分别为"Move Up"和"Move Down",用于调节变量的上下顺序;而变量的上下顺序决定了在模板展开后,编辑器在相应输入域之间切换的顺序;

IntelliJ IDEA为我们提供了一些非常有用的函数,以下列举一二:

  1. capitalize(<name>) ,将传入的参数首字母大写;
  2. className(),模板展开时所处的类的名称;
  3. date(),当前日期;
  4. iterableVariable(),可以进行迭代的变量的名称;
  5. complete(),在变量的位置进行代码补全的调用;

IntelliJ IDEA提供了超过三十个函数,在使用的时候可以参考在线的帮助文档或是IntelliJ IDEA中预定义的那些模板;

以下是一个简单的学生库管理系统示例代码,使用Java编写,并使用IntelliJ IDEA作为开发环境,MySQL作为数据库。 首先,创建一个名为“StudentManagement”的项目,并添加以下依赖项: - MySQL Connector/J - JBCrypt 接下来,创建一个名为“Student”的模型类,表示学生信息: ``` public class Student { private int id; private String name; private int age; private String gender; private String major; // 构造函数 public Student(int id, String name, int age, String gender, String major) { this.id = id; this.name = name; this.age = age; this.gender = gender; this.major = major; } // getter 和 setter 方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major; } } ``` 接下来,创建一个名为“DatabaseConnection”的类,负责连接到MySQL数据库: ``` import java.sql.*; public class DatabaseConnection { private static final String URL = "jdbc:mysql://localhost:3306/student_management"; private static final String USERNAME = "root"; private static final String PASSWORD = "password"; private Connection conn; public DatabaseConnection() { try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } public Connection getConnection() { return conn; } } ``` 然后,创建一个名为“StudentDao”的数据访问对象类,用于执行与学生相关的数据库操作: ``` import org.mindrot.jbcrypt.BCrypt; import java.sql.*; import java.util.ArrayList; import java.util.List; public class StudentDao { private Connection conn; public StudentDao() { conn = new DatabaseConnection().getConnection(); } // 添加学生 public void addStudent(Student student) { String sql = "INSERT INTO students(name, age, gender, major) VALUES (?, ?, ?, ?)"; try { PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, student.getName()); ps.setInt(2, student.getAge()); ps.setString(3, student.getGender()); ps.setString(4, student.getMajor()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } // 根据ID查找学生 public Student getStudentById(int id) { String sql = "SELECT * FROM students WHERE id=?"; Student student = null; try { PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if (rs.next()) { student = new Student( rs.getInt("id"), rs.getString("name"), rs.getInt("age"), rs.getString("gender"), rs.getString("major") ); } } catch (SQLException e) { e.printStackTrace(); } return student; } // 获取所有学生 public List<Student> getAllStudents() { String sql = "SELECT * FROM students"; List<Student> students = new ArrayList<>(); try { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { Student student = new Student( rs.getInt("id"), rs.getString("name"), rs.getInt("age"), rs.getString("gender"), rs.getString("major") ); students.add(student); } } catch (SQLException e) { e.printStackTrace(); } return students; } // 更新学生信息 public void updateStudent(Student student) { String sql = "UPDATE students SET name=?, age=?, gender=?, major=? WHERE id=?"; try { PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, student.getName()); ps.setInt(2, student.getAge()); ps.setString(3, student.getGender()); ps.setString(4, student.getMajor()); ps.setInt(5, student.getId()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } // 删除学生 public void deleteStudent(int id) { String sql = "DELETE FROM students WHERE id=?"; try { PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, id); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 最后,创建一个名为“Main”的主程序类,用于演示如何使用StudentDao执行数据库操作: ``` import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { StudentDao dao = new StudentDao(); Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:"); System.out.println("1. 添加学生"); System.out.println("2. 查找学生"); System.out.println("3. 查看所有学生"); System.out.println("4. 更新学生信息"); System.out.println("5. 删除学生"); System.out.println("6. 退出程序"); System.out.print("请输入选项:"); int option = scanner.nextInt(); switch (option) { case 1: System.out.print("请输入姓名:"); String name = scanner.next(); System.out.print("请输入年龄:"); int age = scanner.nextInt(); System.out.print("请输入性别:"); String gender = scanner.next(); System.out.print("请输入专业:"); String major = scanner.next(); Student student = new Student(0, name, age, gender, major); dao.addStudent(student); System.out.println("添加成功!"); break; case 2: System.out.print("请输入学生ID:"); int id = scanner.nextInt(); Student studentById = dao.getStudentById(id); if (studentById != null) { System.out.println(studentById); } else { System.out.println("未找到该学生!"); } break; case 3: List<Student> allStudents = dao.getAllStudents(); if (allStudents.size() > 0) { for (Student s : allStudents) { System.out.println(s); } } else { System.out.println("暂无学生!"); } break; case 4: System.out.print("请输入学生ID:"); int updateId = scanner.nextInt(); Student updateStudent = dao.getStudentById(updateId); if (updateStudent != null) { System.out.print("请输入姓名(回车不修改):"); String updateName = scanner.next(); if (!updateName.isEmpty()) { updateStudent.setName(updateName); } System.out.print("请输入年龄(回车不修改):"); String updateAge = scanner.next(); if (!updateAge.isEmpty()) { updateStudent.setAge(Integer.parseInt(updateAge)); } System.out.print("请输入性别(回车不修改):"); String updateGender = scanner.next(); if (!updateGender.isEmpty()) { updateStudent.setGender(updateGender); } System.out.print("请输入专业(回车不修改):"); String updateMajor = scanner.next(); if (!updateMajor.isEmpty()) { updateStudent.setMajor(updateMajor); } dao.updateStudent(updateStudent); System.out.println("更新成功!"); } else { System.out.println("未找到该学生!"); } break; case 5: System.out.print("请输入学生ID:"); int deleteId = scanner.nextInt(); dao.deleteStudent(deleteId); System.out.println("删除成功!"); break; case 6: System.exit(0); default: System.out.println("无效选项!"); break; } } } } ``` 运行程序,即可使用控制台界面进行学生库管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值