10JDBC、CURD、XML、XPath-2018/07/20

  • 1.JDBC

    • JDBC:java database connectivity
    • JDBC与数据库驱动的关系:接口与实现的关系。
    • JDBC规范(掌握四个核心对象):
      • DriverManager:用于注册驱动(类)
      • Connection: 表示与数据库创建的连接(接口)
      • Statement: 操作数据库sql语句的对象(接口)
      • ResultSet: 结果集或一张虚拟表(接口)
    • 把jar包放在lib里,然后右键buildpath
    • 实现JDBC操作
      • 1、注册驱动 class forName("com.mysql.jdbc.Driver");
      • 2、创建连接
        • DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=12345");
        • jdbc:mysql://localhost:3306/test 协议 子协议 IP :端口号 数据库
      • 3、得到执行sql语句的Statement对象
        • Statement createStatement(); 创建操作sql语句的对象
        • ResultSet executeQuery(String sql); 根据查询语句返回结果集。
        • int executeUpdate(String sql) 根据执行的DML(insert update delete)语句,返回受影响的行数。
        • boolean execute(String sql) 此方法可以执行任意sql语句。返回boolean值,表示是否返回ResultSet结果集。仅当执行select语句,且有返回结果时返回true, 其它语句都返回false;
      • 4、执行sql语句,并返回结果
      • 5、处理结果
      • 6、关闭资源
  • 2.junit
    • 在方法上添加@test,导库,点方法名右键运行,可以测试方法
    • 要求:不能有返回值,不能有参数
  • 3.结果集
    • Object getObject(String ColomnName); 根据列名取值。
    • 将结果集中的数据封装到javaBean中
    • int getInt(String colLabel) 以int形式获取ResultSet结果集当前行指定列名值
    • String getString(String colLabel) 以String形式获取ResultSet结果集当前行指定列名值
    • Date getDate(String columnName);
    • void close() 关闭ResultSet 对象
    • 可移动游标的方法
      • boolean next() 将光标从当前位置向前移一行。
      • boolean previous() 将光标移动到此 ResultSet 对象的上一行。
      • boolean absolute(int row) 参数是当前行的索引,从1开始根据行的索引定位移动的指定索引行。
      • void afterLast() 将光标移动到末尾,正好位于最后一行之后。
      • void beforeFirst()将光标移动到开头,正好位于第一行之前。
  • 5.CURD
    • 提取DButils.java文件,把连接数据库和关闭数据库的操作抽取出来
    • 可以创建一个properties文件存放变量,在静态代码块new一个ResourceBundle对象,getBundle获取properties文件,再通过getString方法得到文件中的属性值。
  • 6.SQL注入问题:preparedStatement
    • preparedStatement:预编译对象, 是Statement对象的子类
    • 特点:性能要高,会把sql语句先编译,sql语句中的参数会发生变化,过滤掉用户输入的关键字。
    • sql="select * from users where name=? ";stmt.setString(1,name);给?赋值,有几个问号就set几次。
  • 7.XML
    • 可扩展,所有标签都是自定义的。
    • 功能:数据储存
      • 配置文件
      • 数据传输
    • html与xml区别:
      • html语法松散,xml语法严格
      • html做页面展示,xml做数据存储
      • html所有标签都是预定义的,xml所有标签都是自定义的
    • xml语法:
      • 文档声明:

        • 必须写在xml文档的第一行。
        • 写法:<?xml version="1.0" ?>
        • 属性:
          • version:版本号 固定值 1.0
          • encoding:指定文档的码表。默认值为 iso-8859-1
          • standalone:指定文档是否独立 yes 或 no
      • 元素:xml文档中的标签
        • 文档中必须有且只能有一个根元素
        • 元素需要正确闭合。
        • 元素需要正确嵌套
        • 元素名称要遵守:
          • 元素名称区分大小写
          • 数字不能开头
      • 文本:
        • 转义字符:大于号>小于号<
        • CDATA: 里边的数据会原样显示
          • <![CDATA[ 数据内容 ]]>
      • 属性:
        • 属性值必须用引号引起来。单双引号都行
      • 注释:
    • xml约束:xml的书写规则
      • 约束的分类:

        • dtd:

          • 内部dtd:在xml内部定义dtd
          • 外部dtd:在外部文件中定义dtd
            • 本地dtd文件:<!DOCTYPE students SYSTEM "student.dtd">
            • 网络dtd文件:<!DOCTYPE students PUBLIC "名称空间" "student.dtd">
        • schema:导入xsd约束文档:
          • 1、编写根标签
          • 2、引入实例名称空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          • 3、引入名称空间 xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
          • 4、引入默认的名称空间 xmlns=名称:"http://www.itcast.cn/xml"导入多个的时候可以使用名称,标签里边要加<名称:...>
  • 8.XML解析
    • xml解析思想:

      • DOM:将文档加载进内存,形成一颗dom树(document对象),将文档的各个组成部分封装为一些对象。

        • 优点:因为,在内存中会形成dom树,可以对dom树进行增删改查。
        • 缺点:dom树非常占内存,解析速度慢。
      • SAX:逐行读取,基于事件驱动
        • 优点:不占内存,速度快
        • 缺点:只能读取,不能回写
    • xml常用的解析器:
      • DOM4J:dom for java非常好。支持dom

        • 1.导入jar包 dom4j.jar
        • 2.创建解析器 SAXReader reader = new SAXReader();
        • 3.解析xml 获得document对象 Document document = reader.read(url); Elements root = document.getRootElement();得到节点
  • 9.XPATH:专门用于查询
    • 定义了一种规则

      • 使用的方法:

        • selectSingleNode():
        • selectNodes():
    • 使用步骤:
      • 1、注意:要导包 jaxen...jar
      • 2、创建解析器 SAXReader reader = new SAXReader();
      • 3、解析xml 获得document对象 Document document = reader.read(url);
    • nodename 选取此节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 .. 选取当前节点的父节点。 @ 选取属性。 [@属性名] 属性过滤 [标签名] 子元素过滤
  • 10.web目录结构
    • WEB-INF:此目录下的文件不能被外部直接访问
    • webroot里边的文件拷贝到tomcat的webapps里边然后就可以访问了
    • URI当前应用的资源路径
    • 当webapps内存不够时,新建一个myapp.xml,然后放在Tomcat\conf\Catalina\localhost目录下

10JDBC、CURD、XML、XPath的更多相关文章

  1. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

  2. XML、java解释XML、XML约束

    1.XML有什么用? (1)可以用来保存数据 (2)可以用来做配置文件 (3)数据传输载体 2.XML格式 XML 元素必须遵循以下命名规则: 名称可以含字母.数字以及其他的字符 名称不能以数字或者标 ...

  3. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  4. xStream完美转换XML、JSON

    xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换: 前面有介绍过json-lib这个框架,在线博文:htt ...

  5. 10分钟掌握XML、JSON及其解析

    引言 NOKIA 有句著名的广告语:“科技以人为本”.任何技术都是为了满足人的生产生活需要而产生的.具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌 ...

  6. python_day7【模块configparser、XML、requests、shutil、系统命令-面向对象】之篇

    python内置模块补充 一.configparser configparser:用户处理特定格式的文件,其本质是利用open打开文件 # 节点 [section1] #键值对k1 = v1 k2:v ...

  7. Python 解析构建数据大杂烩 -- csv、xml、json、excel

    Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...

  8. 由SOAP说开去 - - 谈谈WebServices、RMI、RPC、SOA、REST、XML、JSON

    引子: 关于SOAP其实我一直模模糊糊不太理解,这种模模糊糊的感觉表述起来是这样: 在使用web服务时(功能接口),本来我就可以通过安卓中固有的http类(使用http协议),来发送http请求,并且 ...

  9. xStream完美转换XML、JSON(转)

    xStream框架 xStream可以轻易的将Java对象和xml文档相互转换,而且可以修改某个特定的属性和节点名称,而且也支持json的转换: 前面有介绍过json-lib这个框架,在线博文:htt ...

随机推荐

  1. leetcode 784. Letter Case Permutation——所有BFS和DFS的题目本质上都可以抽象为tree,这样方便你写代码

    Given a string S, we can transform every letter individually to be lowercase or uppercase to create ...

  2. Spring 框架学习 —— 容器

    容器是 Spring 框架的核心.Spring 容器使用 DI(依赖注入)机制管理构成应用的组件(类),所谓 DI,也即是其能够创建相互协作的组件(类)之间的关联(依赖). 1. 应用上下文(Appl ...

  3. bzoj4869

    http://www.lydsy.com/JudgeOnline/problem.php?id=4869 终于A了...参考了下dalao的代码... 拓展欧几里得定理,改了几次就不变了,但是用的时候 ...

  4. springboot开发过程中的小坑(持续更新)

    1. 启动的Application必须放到一个package下面,如下: package com.example.kikidemo; import org.springframework.boot.S ...

  5. [转载]android常用的API接口调用

    原文地址:android常用的API接口调用作者:宋耀 显示网页:         Uri uri = Uri.parse("http://www.google.com"); In ...

  6. 0629-TP整理四(create(),success(),error(),U())

    create()-前提:表单中name的值要与数据库中的字段一一匹配 可直接获取表单数据进行操作: 作用:将数据库中没有的字段在数组中去除. PHP中添加的语法如下: success()和error( ...

  7. bzoj 1596: [Usaco2008 Jan]电话网络【贪心】

    dfs,如果一个点的儿子.本身.父亲都没有塔,就在父亲上建一个 原理不明-- #include<iostream> #include<cstdio> using namespa ...

  8. Java并发编程系列之CyclicBarrier详解

    简介 jdk原文 A synchronization aid that allows a set of threads to all wait for each other to reach a co ...

  9. Akka源码分析-Akka-Streams-概念入门

    今天我们来讲解akka-streams,这应该算akka框架下实现的一个很高级的工具.之前在学习akka streams的时候,我是觉得云里雾里的,感觉非常复杂,而且又难学,不过随着对akka源码的深 ...

  10. javascript实现引用数据类型的深拷贝和浅拷贝详解

    关于引用类型值的详解,请看另一篇随笔 https://www.cnblogs.com/jinbang/p/10346584.html 深拷贝和浅拷贝,也就是引用数据类型栈和堆的知识点.深浅拷贝的原型都 ...