A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2018-5-30 18:01  /  5164 人查看  /  76 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

曾耀峰

一、DBUtils
   1.DBUtils的更新方法
   update(String sql,Object...Object);
   update()这个方法能执行对增删改等三个DML操作。实现原理是从PreparedStatement对象中获预编译语句的元数据对象,进而得到sql语句中,问号占位符"?"代表的参数个数,和参数的数据类型。然后遍历参数个数。利用pstmt.setObject()方法对参数赋值。
public static  void update(String sql, Object... objects) {
                Connection conn = null;
                PreparedStatement pstmt = null;

                try {
                        conn = C3P0Utils.getConnection();
                        pstmt = conn.prepareStatement(sql);
                        // 获取参数个数
                        ParameterMetaData pmd = pstmt.getParameterMetaData();

                        // 获取?号的个数,就是参数的个数。根据参数的个数设置数据的值
                        int count = pmd.getParameterCount();
                        for (int i = 1; i <= count; i++) {
                                pstmt.setObject(i, objects[i - 1]);
                        }
                        //执行SQL语句
                        pstmt.executeUpdate();
                } catch (Exception e) {
                        System.out.println("1111");
                }finally {
                        C3P0Utils.release(conn, pstmt);
                }
   
    这里比较有意思的是没有采用函数重载,而是使用了可变参数(Object...objs)的写法接收了不确定个数的方法。了解一下即可
   
   2.DBUtils的查询方法
    query(String sql,new ResultSetHandler,Object...objs)
    根据ResultSetHandler接口的实现子类,有九个保存数据的方法。其中常用的是5个:
    1)Object[] ArrayHandler:返回Object[] 得到一个记录的数据存放在数组中
      List<Object[]> ArrayListHandler:返回一个ArrayList<Object[]>  查询多个
    2)Object BeanHandler<Object>(Object.class):得到一个Object对象,注意后面传入class参数
      List<Object> BeanListHandler<Object>(Object.class):得到一个装有Object对象的列表
    3)Map<String ,Object> MapHandler<String,Object>  得到一个map集合对象。String表示列名。整个map集合就是存放的是一个记录的"列名":"值"这样的对象。列名不可能重复
      List<Map<String, Object>> MapListHandler:得到一个装有map集合对象的list列表

      *Map遍历取值的两种方法了解一下:
       1.Set键找值:
       //获取所有的键值  
        Set<String> keys = map.keySet();  
         
        for(String key:keys)  
        {  
            String value = map.get(key);  
            System.out.println("键:"+key +"---"+"值:"+value);  
        }  

       2.EntrySet 键-值对象遍历

         Set<Map.Entry<String, String>> entrys = map.entrySet();  
      
            for(Map.Entry<String, String> entry:entrys)  
            {  
                String hunsband = entry.getKey();  
                String wife = entry.getValue();  
                System.out.println(hunsband+"-----"+wife);  
            }  
      
      提出一个疑问:map本身并没有遍历迭代器,只能通过Set集合来遍历。Set集合是无序的。因此在取出来的记录中。有可能是无序的。所以,应该少使用。
    4) List<Object> ColumnListHandler("列名"):得到一次查询结果中,某一列的所有值
    5) Object ScalarHandler() 只得到一个值

   
二、XML:
   作用:作为配置文件,传输与存储数据。
   解析步骤:
   步骤一: 导入dom4j核心jar包
   步骤二: 创建解析器
   步骤三: 解析文档
   步骤四: 获得根节点
   步骤五: 从根节点获取其他节点
   利用SAXReader解析,掌握一种即可。多了没用。以后通常用Json来传输数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马