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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kuqi3712 中级黑马   /  2017-12-31 16:49  /  1085 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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   初始化连接数

6 个回复

倒序浏览
继续努力哦~
回复 使用道具 举报

新年快乐~~~~·
回复 使用道具 举报
新年快乐~~~~·
回复 使用道具 举报
温故而知新   加油哦   多多总结
回复 使用道具 举报
成功不是“一朝一夕”的事,需要的是“一如既往”的坚持,“一成不变”的乐观,“一门心思”的奋斗,“一鸣惊人”的能力,“一丝不苟”的态度,只有这样,2018你才能取得“一飞冲天”的骄人成绩。
回复 使用道具 举报
新年快乐    继续努力加油哦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马