您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 黑马程序员:DBUtils讲义
黑马程序员郑州中心编著黑马程序员:DBUtils讲义今日内容介绍Properties配置文件DBUtils第1章properties配置文件1.1使用properties配置文件开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。通常情况下,我们习惯使用properties文件,此文件我们将做如下要求:1.文件位置:任意,建议src下2.文件名称:任意,扩展名为properties3.文件内容:一行一组数据,格式是“key=value”.a)key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driverb)value值不支持中文,如果需要使用非英文字符,将进行unicode转换。1.2创建配置文件在项目跟目录下,创建文件,输入“db.properties”文件名。文件中的内容driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydbuser=rootpassword=root黑马程序员郑州中心编著1.3加载配置文件:Properties对象对应properties文件处理,开发中也使用Properties对象进行。我们将采用加载properties文件获得流,然后使用Properties对象进行处理。JDBCUtils.java中编写代码publicclassJDBCUtils{privatestaticStringdriver;privatestaticStringurl;privatestaticStringuser;privatestaticStringpassword;//静态代码块static{try{//1使用Properties处理流//使用load()方法加载指定的流Propertiesprops=newProperties();Readeris=newFileReader(db.properties);props.load(is);//2使用getProperty(key),通过key获得需要的值,driver=props.getProperty(driver);url=props.getProperty(url);user=props.getProperty(user);password=props.getProperty(password);}catch(Exceptione){thrownewRuntimeException(e);}}/***获得连接*/publicstaticConnectiongetConnection(){try{//1注册驱动Class.forName(driver);//2获得连接Connectionconn=DriverManager.getConnection(url,user,password);黑马程序员郑州中心编著returnconn;}catch(Exceptione){thrownewRuntimeException(e);}}}1.4使用JDBCUtils工具类测试类publicclassDemo{@Testpublicvoidinsert(){try{//1,获取连接对象Connectionconn=JDBCUtils.getConnection();//2,指定要执行的SQL语句Stringsql=INSERTINTOzhangwu(name,money,parent)VALUES(?,?,?);//4,获取SQL语句的执行对象PreparedStatementPreparedStatementppstat=conn.prepareStatement(sql);//5,执行SQL语句ppstat.setString(1,股票收入);ppstat.setDouble(2,5000);ppstat.setString(3,收入);intline=ppstat.executeUpdate();//6,处理结果集System.out.println(line=+line);//7,关闭连接ppstat.close();conn.close();}catch(SQLExceptione){thrownewRuntimeException(e);}}}第2章DBUtils如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例黑马程序员郑州中心编著我们讲采用apachecommons组件一个成员:DBUtils。DBUtils就是JDBC的简化开发工具包。需要项目导入commons-dbutils-1.6.jar才能够正常使用DBUtils工具。2.1概述DBUtils是java编程中的数据库操作实用工具,小巧简单实用。DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。Dbutils三个核心功能介绍QueryRunner中提供对sql语句操作的API.ResultSetHandler接口,用于定义select操作后,怎样封装结果集.DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法2.2QueryRunner核心类update(Connectionconn,Stringsql,Object...params),用来完成表数据的增加、删除、更新操作query(Connectionconn,Stringsql,ResultSetHandlerTrsh,Object...params),用来完成表数据的查询操作2.3QueryRunner实现添加、更新、删除操作update(Connectionconn,Stringsql,Object...params),用来完成表数据的增加、删除、更新操作黑马程序员郑州中心编著2.3.1添加publicvoidinsert(){try{//获取一个用来执行SQL语句的对象QueryRunnerQueryRunnerqr=newQueryRunner();Stringsql=INSERTINTOzhangwu(name,money,parent)VALUES(?,?,?);Object[]params={股票收入,5500,收入};Connectionconn=JDBCUtils.getConnection();intline=qr.update(conn,sql,params);//用来完成表数据的增加、删除、更新操作//结果集处理System.out.println(line=+line);}catch(SQLExceptione){thrownewRuntimeException(e);}}2.3.2更新publicvoidupdate(){try{//创建一个QueryRunner对象,用来完成SQL语句的执行QueryRunnerqr=newQueryRunner();//执行SQL语句Stringsql=UPDATEzhangwuSETmoney=money+1000WHEREname=?;Object[]params={股票收入};Connectionconn=JDBCUtils.getConnection();intline=qr.update(conn,sql,params);//结果集的处理System.out.println(line=+line);}catch(SQLExceptione){thrownewRuntimeException(e);}}2.3.3删除publicvoiddelete(){try{黑马程序员郑州中心编著//创建一个QueryRunner对象,用来完成SQL语句的执行QueryRunnerqr=newQueryRunner();//执行SQL语句Stringsql=DELETEFROMzhangwuWHEREname=?;Object[]params={股票收入};Connectionconn=JDBCUtils.getConnection();intline=qr.update(conn,sql,params);//结果集的处理System.out.println(line=+line);}catch(SQLExceptione){thrownewRuntimeException(e);}}2.4QueryRunner实现查询操作query(Connectionconn,Stringsql,ResultSetHandlerTrsh,Object...params),用来完成表数据的查询操作2.4.1ResultSetHandler结果集处理类ArrayHandler将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值ArrayListHandler将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。BeanHandler将结果集中第一条记录封装到一个指定的javaBean中。BeanListHandler将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中ColumnListHandler将结果集中指定的列的字段值,封装到一个List集合中黑马程序员郑州中心编著ScalarHandler它是用于单数据。例如selectcount(*)from表操作。MapHandler将结果集第一行封装到Map集合中,Key列名,Value该列数据MapListHandler将结果集第一行封装到Map集合中,Key列名,Value该列数据,Map集合存储到List集合2.4.2JavaBeanJavaBean就是一个类,在开发中常用封装数据。具有如下特性1.需要实现接口:java.io.Serializable,通常实现接口这步骤省略了,不会影响程序。2.提供私有字段:private类型字段名;3.提供getter/setter方法:4.提供无参构造/**账务类*/publicclassZhangWu{privateintid;privateStringname;privatedoublemoney;privateStringparent;publicZhangWu(){super();}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;黑马程序员郑州中心编著}publicvoidsetName(Stringname){this.name=name;}publicdoublegetMoney(){returnmoney;}publicvoidsetMoney(doublemoney){this.money=money;}publicStringgetParent(){returnparent;}publicvoidsetParent(Stringparent){this.parent=parent;}@OverridepublicStringtoString(){//该方法可以省略returnZhangWu[id=+id+,name=+name+,money=+money+,parent=+parent+];}}2.4.3ArrayHandler与ArrayListHandler查询ArrayHandler:将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值publicclassArrayHandlerDemo{@Testpublicvoidmethod(){try{//获取QueryRunner对象QueryRunnerqr=newQueryRunner();//执行SQL语句Stringsql=
本文标题:黑马程序员:DBUtils讲义
链接地址:https://www.777doc.com/doc-7634485 .html