java面向对象经验(Map、Statement)

1.java中遍历Map使用PreparedStatement实现批量添加

Connection con = null;   
PreparedStatement pstm = null;   
try {   
            // 1. 建立与数据库的连接   
            con = JDBCConAndClo.getConnectionBao();   
            // 2. 执行sql语句   
            // 1).先创建PreparedStatement语句(发送slq请求):   
            pstm = con.prepareStatement("update T_TABLE set name = ? , alias = ? where id = ? ");   
            con.setAutoCommit(false);//1,首先把Auto commit设置为false,不让它自动提交   
            // 2) 因为参数的特殊性(三个参数有两个是相同的所以)使用map统一处理参数。
            Map<String,String> map = new HashMap<String,String>();
            map.put(123,"wangmett");
            map.put(124,"wangmehh");
            map.put(125,"wangmegg");
            // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。 
            for(Map.Entry<String,String> entry: map.entrySet()){
                pstm.setString(1,entry.getValue());
                pstm.setString(2,entry.getValue());
                pstm.setString(3,entry.getKey());
                pstm.addBatch();  
            }  
             
            
            // 4) 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 
            pstm.executeBatch();   
            System.out.println("插入成功!");   
            // 若成功执行完所有的插入操作,则正常结束   
            con.commit();//2,进行手动提交(commit)   
            System.out.println("提交成功!");   
            con.setAutoCommit(true);//3,提交完成后回复现场将Auto commit,还原为true,   
  
        } catch (SQLException e) {   
            e.printStackTrace();   
            try {   
                // 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态   
                if(!con.isClosed()){   
                    con.rollback();//4,当异常发生执行catch中SQLException时,记得要rollback(回滚);   
                    System.out.println("插入失败,回滚!");   
                    con.setAutoCommit(true);   
                }   
            } catch (SQLException e1) {   
                e1.printStackTrace();   
            }   
        }finally{   
            JDBCConAndClo.closePreparedStatement(pstm);   
            JDBCConAndClo.closeConnection(con);   
        }   
    }   
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,有多种方法可以将对象转换为Map。以下是几种常见的方法: 1. 使用Apache Commons BeanUtils库:可以使用该库中的BeanUtils类的`describe`方法将对象转换为Map。该方法将对象的属性名作为键,属性值作为值存储在Map中。示例代码如下所示: ```java import org.apache.commons.beanutils.BeanUtils; public class Main { public static void main(String[] args) throws Exception { User user = new User(); user.setId(1L); user.setName("John"); Map<String, String> map = BeanUtils.describe(user); System.out.println(map); } } ``` 引用自 2. 使用Jackson库:如果你使用的是Jackson库,你可以使用`ObjectMapper`类将对象转换为Map。示例代码如下所示: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class Main { public static void main(String[] args) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); User user = new User(); user.setId(1L); user.setName("John"); Map<String, Object> map = objectMapper.convertValue(user, Map.class); System.out.println(map); } } ``` 3. 使用FastJSON库:如果你使用的是FastJSON库,可以使用`toJSONString`方法将对象转换为JSON字符串,然后使用`parseObject`方法将JSON字符串转换为Map。示例代码如下所示: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class Main { public static void main(String[] args) { User user = new User(); user.setId(1L); user.setName("John"); String jsonString = JSON.toJSONString(user); Map<String, Object> map = JSONObject.parseObject(jsonString, Map.class); System.out.println(map); } } ``` 这些方法都可以将Java对象转换为Map,你可以根据自己的需求选择合适的方法进行使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java对象和Map互相转换的6种方式](https://blog.csdn.net/wy971744839/article/details/130308133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Java对象和Map相互转换方法](https://blog.csdn.net/hello_world_9664/article/details/114755808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值