黑马程序员技术交流社区

标题: day18 学习经历 [打印本页]

作者: kuqi3712    时间: 2017-12-31 16:49
标题: day18 学习经历
properties 配置文件
                将数据库的驱动 url 用户名 密码都存储在配置文件中
                建议放在src下面
               
                //使用类的加载器
                InputStream is= PropertiesDemo.class.getClassLoader().getResourceAsStream("database.properties");
               
                Properties pro=new Properties();
                pro.load(is);
                System.out.println(pro);
                //获取集合中的键值对
                String driverClass = pro.getProperty("driverClass");
                String url = pro.getProperty("url");
                String username = pro.getProperty("username");
                String password = pro.getProperty("password");
                Class.forName(driverClass);
               
                Connection con = DriverManager.getConnection(url, username, password);
               
DbUtils:
        QueryRunner 提供对sql语句操作的api(增删改查)
           query        查
           deprecated表示 已过时
           update 增删改
          
           int        update(Connection conn, String sql, Object... params)
           params 可以给占位符'?'赋值
           例如:
           String sql = "update  sort set sname=?,sprice=?,sdesc=? where sid=?";
                // 将三个为好占位符的事迹参数写在一个数组中
                Object[] param = { "生活用品", 432.23, "购买xx用品" ,7};
                int row = qr.update(con, sql, param);
          
          
        ResultSetHandler接口,用于定义select操作后怎么封装结果集
               
                ArrayHandler() 将第一条记录封装到Object[]数组(没有数据该数组长度为0),数组里面的就是每一个字段的值
               
                ArrayListHandler() 将每一条记录封装到Object[]数组,将数组封装到List集合中
               
                BeanHandler 将结果集中第一条记录封装到指定的JavaBean中
                BeanHandler();括号里面放一个类的class对象
                ResultSetHandler rsh = new BeanHandler<Sort>(Sort.class);
                Sort sort= qr.query(con, sql, rsh);
                如果没有结果集Sort就为null
               
                BeanListHandler 将结果集中每一条记录封装到指定的JavaBean中,将这些JavaBean封装到list集合
               
                ColumnListHandler 将结果集中指定的列的字段值 封装到list集合
                ColumnListHandler()括号里面放列名
                ScalarHandler 用于单数据(聚合函数 sum count 等)的操作
               
                MapHandlder
                        键是一个列名 值是这一列的数据
                MapListHandlder
                        键是一个列名 值是这一列中的数据,然后把map集合存储到list集合中
        DBUtils 定义了关闭资源与事物处理的方法
       
        事物处理案例,转账
                执行成功,提交事务 conmmit
                执行失败,回滚事务 rollback
由于频繁的创建,关闭Connection,现在用一个池来管理Connection,用的时候从池里面拿,用完了就归还
javax.sql里面有一个DataSource接口
        常见的连接池DBCP C3P0
        DBCP(Tomcat(javaweb服务器,把写好的class文件放在Tomcat软件中,作用是会监听端口80)内置连接池)
        导入jar包后有一个BasicDataSource实现了javax.sql.DataSource
                BasicDataSource的使用步骤:
                设置必须项:
                        //创建DataSource接口的实现类
                        //实现类在 org.apache.commons.apachp
                        BasicDataSource dataSource=new BasicDataSource();
                       
                        1.dataSource.setDriverClassName("com.mysql.jdbc.Driver");
                       
                        2.dataSource.setUrl("jdbc:mysql://localhost:3306/mydatabase");
                       
                        3.dataSource.setUsername("root");
                       
                        4.dataSource.setPassword("root");
                       
                        new QueryRunner(JDBCUtils.getDataSource)
                       
                设置基本项(如果不自定义 系统会默认分配):
                        maxActive 最大连接数
                        minidle   最小空闲连接数
                        maxidle          最大空闲连接数
                        initialSize   初始化连接数


作者: 1414225997    时间: 2018-1-2 09:14
继续努力哦~
作者: 陈文老师    时间: 2018-1-2 10:11

新年快乐~~~~·
作者: xiongliu    时间: 2018-1-2 10:14
新年快乐~~~~·
作者: 渝小妹    时间: 2018-1-2 10:22
温故而知新   加油哦   多多总结
作者: 渝小妹    时间: 2018-1-2 10:24
成功不是“一朝一夕”的事,需要的是“一如既往”的坚持,“一成不变”的乐观,“一门心思”的奋斗,“一鸣惊人”的能力,“一丝不苟”的态度,只有这样,2018你才能取得“一飞冲天”的骄人成绩。
作者: 狸大大    时间: 2018-1-2 10:46
新年快乐    继续努力加油哦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2