什么叫JDBC? JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。 JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 JDBC的常用接口有哪些? l Connection 接口: 1. DriverManager.getConnection //创建数据库连接;: 2. prepareStatement(); //创建预处理SQL语句; 3. //预编译SQL,减少SQL执行; 4. prepareCall(); //创建可调用的SQL语句 5. getAutoCommit(); //获取自动提交的模式; 6. setAutoCommit(); //设置自动提交的模式; 7. commit(); //提交所执行的SQL语句; 8. rollback(); //回滚所执行的SQL语句; 9. getMetaData(); //获取一个DatabaseMetaData对象,该对象包含了有关数据库的基本信息 10. close();关闭数据库; l ResultSrt接口: 1. first()/beforeFirst():将游标移动到ResultSet中第一条记录(的前面) 2. last()/afterLast():将游标移动到ResultSet中最后一条记录(的后面) 3. absolute(int column):将游标移动到相对于第一行的指定行,负数则为相对于最后一条记录 4. relative(int rows):将游标移动到相对于当前行的第几行,正为向下,负为向上 5. next():将游标下移一行 6. previous():将游标上移一行 7. insertRow():向当前ResultSet和数据库中被插入行处插入一条记录 8. deleteRow():将当前ResultSet中的当前行和数据库中对应的记录删除 9. updateRow():用当前ResultSet中已更新的记录更新数据库中对应的记录 10. cancelUpdate():取消当前对ResultSet和数据库中所做的操作 11. findColumn(String columnName):返回当前ResultSet中与指定列名对应的索引 12. getRow():返回ResultSet中的当前行号 13. refreshRow():更新当前ResultSet中的所有记录 14. getMetaData():返回描述ResultSet的ResultSetMetaData对象 15. isAfterLast(): 是否到了结尾 16. isBeforeFirst(): 是否到了开头 17. isFirst():是否第一条记录 18. isLast(): 是否最后一条记录 l ResultSetMetaData接口: 1.getColumnCount():返回ResultSet中列的数目 2.getColumnName():返回列在数据库中的名称 3.getColumnType():返回列的SQL类型 4.isReadOnly():表示该数据项是否为只读值 5.isNullable():表示该列是否可以存储NULL 关闭连接 在关闭数据库连接时应该以ResultSet、Statement、Connection的顺序进行; 什么叫DBUtils,有什么,怎么用?DBUtils是一个简化JDBC操作的小类库。 双接口(常用): ResultSetHandler 将ResultSet转化为别的对象的工具; QueryRunner 接收数据源,操作数据库; QueryRunner有三类方法: betch()方法,query()方法,update()方法; update方法主要用于: 增删改操作; 重点: query方法: query 方法主要用于查询,通常需要把结果集ResultSet封装到JavaBean或者集合或者数组. JavaBean( JavaBean是一个类; JavaBean类必须有一个没有参数的构造函数。 JavaBean类所有的属性最好定义为私有的。 JavaBean类中定义函数setXxx() 和getXxx()来对属性进行操作。其中Xxx是首字母大写的私有变量名称。) query(sql语句,ResultSetHandler<T>接口实现,(SQL语句判断));4 <T代表了要存入的目标类型,有JavaBean,数组,集合> 实现了ResultSetHandler接口的对象: (01:)ArrayHandler 将查询结果的每一行返回一个数组对象返回; (02:)ArrayListHandler 将查询的每一行转换为一个Object[]数组,然后装入一个ArrayList集合 (03:)BeanHandler 将查询结果的第一行转换为一个JavaBean对象返回 (04:)BeanListHandler 将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。 (05):MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。 (06:)MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List (07:)ColumnListHandler:将结果集中某一列的数据存放到List中。 (08:) KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里(List<Map>),再把这些map再存到一个map里,其key为指定的列。 (9:)ScalarHandler: 单值查询 什么是连接池? 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量,避免重复创建浪费资源。 java.sql.DataSoure 是Java为数据库连接池提供的公共的接口,方便各个厂商可以让自己的连接池实现这个接口. 01: Druid连接池: 阿里旗下,目前性能最高的连接池 Druid的配置文件: 属性文件:名称.propertoes jdbcUrl 连接数据库的url,不同数据库不一样。 username 连接数据库的用户名 password 连接数据库的密码。 initialSize 初始化时建立物理连接的个数。 maxActive 最大连接池数量 minIdle 最小连接池数量 02: C3P0连接池: c3p0是一个开源的连接池; C3P0连接池:ComboPooledDataSource。 需要配置文件c3p0-config-xml;文件必须放在src下属性 也可以配置xml的文件 XML是什么,怎么配置? XML可用于传输和存储(存储现在已经极少使用了),大多用于软件的配置文件; 文档声明:通常出现在XML的第一行第一列的位置!!! XML配置文件中必须有 version(版本号)属性;版本号大多为1.0; 标签必须有开始和结束,属性名加引号,区分大小写; 名称不能有空格,冒号等特殊字符; ![CDETA[里面的内容全部以字符串形式读取]]; 特殊字符: <//小于 >//大于 &//和号(与); &qet;//引号; 关于XML的解析: 解析方式有两种:
SAX和 DOM Ø 针对这两种解析的方式,不同的公司提供了不同的API的实现. DOM4J :开源组织提供了一套XML的解析的API-dom4j. //多用于DOM4J(需要导入jar包.dom4j-1.6.1.jar) pull :主要应用在Android手机端解析XML. //用于解析移动端的XML文件; SAXReader reader = new SAXReader();//创建解析器; Document document 接收读取的文档; Element Element获取节点 dom4j支持Xpath的包,API 多个值可用Lisst<Node>接收; <面试题:SAX和DOM的区别>: SAX: 事件驱动的方式,一行一行的解析 不可以对XML进行增删改的操作 DOM: 一次性将文档加载到内存,形成树形结构进行解析 可以对XML进行增删改的操作 什么是XML的约束? XML一般有两种约束: DTD 和 Schema 区别: 1.DTD语法是自成一体的.Schema语法就是XML的语法. 2.Schema的语法就是XML的语法所以更容易被解析器所解析. 3.Schema支持名称空间. 4.Schema有比DTD更加强大的语义和语法的约束. [@'属性'] "//元素" 约束?: 0~1 约束*:0~n 约束+: 1~n 一个XML可以引入多个Schema约束;(了解,略) 什么叫Tomcat,做什么用的? Tamcat C/S架构 Client/Server 客户端和服务端(PC需要安装)1. B/S架构 Browser/Server 浏览器端和服务器端 (无需安装,浏览器访问); Web资源: 静态资源 HTML,CSS,JS 动态资源: 动态资源 服务器 PHP : Apache ASP : IIS Servlet/JSP : Websphere: 大型服务器软件,支持所有EE开发规范 WebLogic : 大型服务器软件,支持所有EE开发规范 Tomcat: 免费的小型服务器软件,支持Servelet/JSP的开发规范 JBsss : 服务器: 硬件:配置要求极高的电脑; 软件:必须在一台电脑上安装服务器软件,这台电脑才为WEB服务器 WEB动态资源目录结构 2.5规范 website 静态资源 必须有一个路径WEB_INF 还需要有一个文件 web.xml(3.0可无) 放Java class文件的文件夹 classes 放jar包的文件夹 lib 目录结构 bin tomcat的执行文件 conf tomcat的配置文件 lib tomcat运行需要的jar包 logs tomcat的运行日志文件 temp tomcat产生临时文件存放的路径 webapps tomcat发布的web项目路径 work 发布一个WEB项目到Tomcat中 01: 直接将工程copy到tomcat /webapps下(不可取); 02配置tomcat虚拟路径 在conf-Catalina/localhost/???.xml 配置<Context docBase="路径"/> 不需要可直接删除,无影响 tomcat/conf//server.xml中改端口号 把项目做成一个war包,放到webapss中会自动解压回去 http协议 请求行 请求头 请求体 1.0;//每次响应后即刻关闭连接 1.1;//响应后长时间无请求结束; 常见响应头 Referer ;//防盗链 If-Modified-Since;//与响应头Last-Modified一起寻找本地 状态码: 200: 成功 302:重定向 304:查找本地缓存 404:访问资源不存在 500:服务器内部错误 Serevlet: 访问: ip(localhost本地):端口/工程名/要访问的文件名 .setCharacterEncoding("UTF-8 ");乱码 getParameter(); 用于接收一个名称对应一个值的数据 String[]getParameterValues(); 用于接收一个名称对应多个值的数据 Map getParameterMap() Servlet(Server Applet)是Java Servlet的简称, 称为小服务程序或服务连接器,用Java编写的服务器端程序, 主要功能在于交互式地浏览和修改数据,生成动态Web内容。 客户端发送请求至服务器端; 服务器将请求信息发送至 Servlet; Servlet 生成响应内容并将其传给服务器。 响应内容动态生成,通常取决于客户端的请求; 服务器将响应返回给客户端。 Serlet与Service? Servlet定义的是一套服务于Java Web开发接口,目的是实现Java Web的动态访问。 Web Service是定义了一套标准(SOAP、WSDL、UDDI),各种语言只要按照这个标准都能实现自己的Web Service ,并且其他平台和语言根据Web Service的描述文件WSDL就能够轻易地访问这个Web Service
|