xml系列篇之xml解析
优点
1. 可读性强
XML文件使用标签来区分不同的元素,具有良好的可读性和可维护性,有助于开发人员理解和处理XML文件。
2. 结构化数据
XML提供了一种方式来描述数据的结构和层次结构,有助于开发人员在处理复杂数据结构时强制执行数据结构和约束条件。
3. 跨平台和通用性强
由于XML采用标准化格式,它具有跨平台和通用性强的优势,可以与不同平台、不同环境和不同开发语言进行交互。
4. 改善数据处理效率
在大量数据需要被处理时,使用XML解析器可以大大提高开发效率。XML解析器将XML文件解析为对象模型或者树状结构,可以轻松地对其进行访问、修改和转换,方便了数据的处理和管理。
⭐⭐总之,使用XML解析可以方便地读取和处理XML文件中的数据,并提高数据处理的效率和可靠性
文字的说服力俨然比不上代码,那么话不多说,我们直接看代码
💡辉辉小贴士:xml在数据库辅助类中的应用
下面是我们常写的数据库辅助类的代码
这样写会产生一个问题,那就是会有局限性,如果在后期我的数据库密码或者是用户名更改了,那么我就需要将已经编译生成的class文件进行反编译,再次生成java文件之后,对里面的用户名和密码进行修改,是不是听起来都特别麻烦?
package com.wh.parse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
* 数据库辅助类
*
* @author W
*
*/
public class DBUtils {
/**
* 加载驱动
*/
static {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("驱动加载完成😊😊");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 创建连接
*
* @return
*/
public static Connection getcon() {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Movie;", "sa", "123");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭资源
*
* @param con
* @param ps
* @param rs
*/
public static void myclose(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null && !con.isClosed()) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println(new DBUtils());
}
}
那么这时,我们可以将配置文件运用到数据库辅助类中【properties文件】
#oracle9i
#driver=oracle.jdbc.driver.OracleDriver
#url=jdbc:oracle:thin:@localhost:1521:orcl
#user=scott
#pwd=***
#sql2005
#driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#url=jdbc:sqlserver://localhost:1433;DatabaseName=test1
#user=sa
#pwd=***
#sql2000
#driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
#url=jdbc:microsoft:sqlserver://localhost:1433;databaseName=unit6DB
#user=sa
#pwd=***
#mysql
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8&useSSL=false
user=root
pwd=***
可以看到,里面都是需要连接第三方软件的用户名,密码,url...
这样写的话,会更加安全,后期修改起来也更为方便
那么我们的DBUtils也会变得更加的方便!!👇👇
package com.wh.parse;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 提供了一组获得或关闭数据库对象的方法
*
*/
public class DBUtils {
private static String driver;
private static String url;
private static String user;
private static String password;
static {// 静态块执行一次,加载 驱动一次
try {
InputStream is = DBUtils.class
.getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(is);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("pwd");
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 获得数据连接对象
*
* @return
*/
public static Connection getConnection() {
try {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void close(ResultSet rs) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Statement stmt) {
if (null != stmt) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn) {
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
close(rs);
close(stmt);
close(conn);
}
public static boolean isOracle() {
return "oracle.jdbc.driver.OracleDriver".equals(driver);
}
public static boolean isSQLServer() {
return "com.microsoft.sqlserver.jdbc.SQLServerDriver".equals(driver);
}
public static boolean isMysql() {
return "com.mysql.jdbc.Driver".equals(driver);
}
public static void main(String[] args) {
Connection conn = DBUtils.getConnection();
DBUtils.close(conn);
System.out.println("isOracle:" + isOracle());
System.out.println("isSQLServer:" + isSQLServer());
System.out.println("isMysql:" + isMysql());
System.out.println("数据库连接(关闭)成功");
}
}