一.最最简单,最最通俗易懂,XMl解析


在这里插入图片描述

1.配置文件在jdbc中的作用

1.在Java中,JDBC(Java Database Connectivity)是一种用于连接和操作数据库的API。配置文件在JDBC中的作用主要是用来存储数据库连接的信息,如数据库的URL、驱动程序的类名、用户名和密码等。这些信息通常不应该硬编码到Java代码中,因为这样做会使代码变得非常不灵活,而且会增加维护的难度。相反,将这些信息保存在配置文件中,可以轻松地更改它们,从而避免了在更改连接信息时需要修改代码的麻烦。

2.配置文件通常用来指定JDBC驱动程序的加载和连接信息。在Java中,可以使用java.util.Properties类来读取配置文件。这个类提供了一种简单的方法来加载和解析属性文件,以获取应用程序所需的配置信息。调用Properties类的load()方法,可以从任何实现了java.io.InputStream接口的字节流中读取属性列表。然后,可以使用getProperty()方法获取配置信息,并将其传递给JDBC连接对象。

3.总之,配置文件在JDBC中极其重要,它可以方便地管理和维护连接信息,并使代码更加灵活和易于扩展。

2.读取不同位置下的配置文件

1.同包下读取配置文件

package com.niyin.xml2;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 
 * @author 匿瘾
 *同包
 */
public class demo1 {
public static void main(String[] args) throws Exception {
//	通过类加载器加载配置文件
InputStream inputStream = demo1.class.getResourceAsStream("db.properties");

Properties p=new Properties();
p.load(inputStream);
System.out.println(p.getProperty("driver_Class"));
	System.out.println(p.getProperty("upass"));
	System.out.println(p.getProperty("url"));
	
	
	
}
		
}

被读取的配置文件
在这里插入图片描述

运行结果
在这里插入图片描述

2.根目录下读取配置文件

1.区别在与多了/,其它的与前面没有区别

package com.niyin.xml2;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 
 * @author 匿瘾
 *同包
 */
public class demo1 {
public static void main(String[] args) throws Exception {
//	通过类加载器加载配置文件
InputStream inputStream = demo1.class.getResourceAsStream("/db.properties");

Properties p=new Properties();
p.load(inputStream);
System.out.println(p.getProperty("driver_Class"));
	System.out.println(p.getProperty("upass"));
	System.out.println(p.getProperty("url"));
	
	
	
}
		
}

3.读取安全目录WEB-INF下的配置文件

package com.niyin.xml2;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 
 * @author 匿瘾
 *
 */
@WebServlet("/Web‌infServlet")
public class Web‌infServlet extends HttpServlet {
	
    

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
doPost(request, response);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream resourceAsStream = request.getServletContext().getResourceAsStream("/WEB-INF/lib/db.properties");
	
Properties p=new Properties();
p.load(resourceAsStream);
System.out.println(p.getProperty("driver_Class"));
	System.out.println(p.getProperty("upass"));
	System.out.println(p.getProperty("url"));
	
	}

}


运行结果
在这里插入图片描述

3.xml解析常用方法

1. 获取xml文件的内容DOM4J解析

xml,文件,接下来都会用它演示
在这里插入图片描述

package com.niyin.xml2;

import java.io.InputStream;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 *
 */
public class demo2 {

	public static void main(String[] args) throws Exception {

		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		System.out.println(doc.asXML());

	}

}

运行结果
在这里插入图片描述

2. 使用selectNodes获取student里的内容

package com.niyin.xml2;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 *
 */
public class demo2 {

	public static void main(String[] args) throws Exception {

		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		// System.out.println(doc.asXML());
		System.out.println(doc.asXML());
		List<Element> list = doc.selectNodes("/students/student");
//		List<Element> stuEles = doc.selectNodes("/students/student");
		System.out.println(list);

	}

}

运行结果
在这里插入图片描述

3.获取name标签内容,selectsingleNode

package com.niyin.xml2;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 *
 */
public class demo2 {

	public static void main(String[] args) throws Exception {

		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		// System.out.println(doc.asXML());
//		System.out.println(doc.asXML());
		List<Element> list = doc.selectNodes("/students/student");
		List<Element> stuEles = doc.selectNodes("/students/student");

		for (Element element : stuEles) {
//			System.out.println(element.asXML());
			Element nameELe = (Element) element.selectSingleNode("name");
			System.out.println(nameELe.asXML());
		}
	}

}

在这里插入图片描述

4.获得标签内容,getText

package com.niyin.xml2;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 *
 */
public class demo2 {

	public static void main(String[] args) throws Exception {

		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		// System.out.println(doc.asXML());
//		System.out.println(doc.asXML());
		List<Element> list = doc.selectNodes("/students/student");
		List<Element> stuEles = doc.selectNodes("/students/student");

		for (Element element : stuEles) {
//			System.out.println(element.asXML());
			Element nameELe = (Element) element.selectSingleNode("name");
//		System.out.println(nameELe.asXML());
System.out.println(nameELe.getText());
//		System.out.println(element.attributeValue("sid"));
		}
	}

}


运行结果
在这里插入图片描述

4.获取标签属性值,及学生学号,attributeValue

package com.niyin.xml2;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 *
 */
public class demo2 {

	public static void main(String[] args) throws Exception {

		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		// System.out.println(doc.asXML());
//		System.out.println(doc.asXML());
		List<Element> list = doc.selectNodes("/students/student");
		List<Element> stuEles = doc.selectNodes("/students/student");

		for (Element element : stuEles) {
//			System.out.println(element.asXML());
			Element nameELe = (Element) element.selectSingleNode("name");
//		System.out.println(nameELe.asXML());
//System.out.println(nameELe.getText());
		System.out.println(element.attributeValue("sid"));
		}
	}

}

运行结果
在这里插入图片描述

4.xml快速解析方法

1.普通方式获得sid对应的name

package com.niyin.xml2;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 * Xpath解析
 *
 */
public class demo3 {

	
	public static void main(String[] args) throws Exception {
		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		
	
		List<Element> stuEles = doc.selectNodes("/students/student");

		for (Element element : stuEles) {
if ("s002".equals(element.attributeValue("sid"))) {
	Element nameEle = (Element) element.selectSingleNode("name");

	System.out.println(nameEle.getText());
	
}
			

//xpath,解析
//Element nameEle = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name");
//			System.out.println(nameEle.getText());
//		

	
		}
}
}

运行结果
在这里插入图片描述

2.通过Xpath方式获得

package com.niyin.xml2;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

/**
 * 
 * @author 匿瘾
 * Xpath解析
 *
 */
public class demo3 {

	
	public static void main(String[] args) throws Exception {
		InputStream inputStream = demo2.class.getResourceAsStream("students.xml");
		SAXReader s = new SAXReader();
		Document doc = s.read(inputStream);
		
	
//		List<Element> stuEles = doc.selectNodes("/students/student");
//
//		for (Element element : stuEles) {
//if ("s002".equals(element.attributeValue("sid"))) {
//	Element nameEle = (Element) element.selectSingleNode("name");
//
//	System.out.println(nameEle.getText());
//	
//}
			

//xpath,解析
Element nameEle = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name");
			System.out.println(nameEle.getText());
		

	
		}
}
//}

在这里插入图片描述
总结,两者,比较,xpath的方式更为简便,快捷。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值