Erlo

Java学习:Java Bean 自动生成 INSERT SQL 及 JDBC 操作优化

2025-03-24 11:29:22 发布   81 浏览  
页面报错/反馈
收藏 点赞

功能说明
将Java Bean类转换为标准的INSERT SQL语句模板,支持:

  • 自动转换驼峰命名 → 下划线命名
  • 动态适配所有字段
  • 生成参数占位符(?)
 public static String generateInsert(Class> beanClass){
      //基础结构初始化    
      StringBuilder sql = new StringBuilder("insert into ");
        //表名转换
        String tableName = convertToSnake(beanClass.getSimpleName());
        sql.append(tableName).append("(");

        //Bean 对象中的所有字段 - 注意:Bean对象的字段与数据表的字段————对应
        Field[] declaredFields = beanClass.getDeclaredFields();
        for (Field declaredField : declaredFields) {
            sql.append(convertToSnake(declaredField.getName())).append(",");
        }
        //去除最后一个逗号
        sql.deleteCharAt(sql.length()-1);

        sql.append(") values (");

        //参数占位符生成
        for (int i = 0; i 

自动生成添加SQL,并实现JDBC 添加操作

  public static int insert(Object model){
        int row = 0;
        String sql = SqlGenerate.generateInsert(model.getClass());

        Connection connection = DruidUtil.getConnection();

        PreparedStatement pst = null;

        try {
            pst = connection.prepareStatement(sql);

            //第四:填充数据
            //1.获取Bean对象的 Class对象
            Class> clazz = model.getClass();

            //2.获取Bean对象的所有字段
            Field[] fields = clazz.getDeclaredFields();

            //3.循环遍历所有的字段,读取字段数据,并填充占位符
            for (int i = 0; i 

测试结果:

   // 第一:定义一个员工对象,并初始化相关的信息
        Staffs staff = new Staffs();

        staff.setId(6);
        staff.setName("王八");
        staff.setAge(22);
        staff.setPhone("110");
        staff.setStaPos("项目经理");
        staff.setAddTime(LocalDateTime.now());
        staff.setUpdateTime(LocalDateTime.now());

        System.out.println(DbUtil.insert(staff));

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认