今天和大家分享一下Java通过xml文件方法实现JDBC代码案例。
一、使用步骤
1.Maven导包
<pre class="prettyprint hljs xml" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.iteheima</groupId>
<artifactId>jdbc</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</project></pre>
2.定义xml文件
按照自己情况定义Url,Username,Password等信息
<pre class="prettyprint hljs xml" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><?xml version="1.0" encoding="utf-8" ?>
<jdbc_config>
<mysql_config>
<DriverClass>com.mysql.cj.jdbc.Driver</DriverClass>
<Url>jdbc:mysql://localhost:3306/aaa</Url>
<Username>root</Username>
<Password>12345678</Password>
<Sql>select * from employee</Sql>
</mysql_config>
</jdbc_config></pre>
3.定义JDBCUtils类
<pre class="prettyprint hljs dart" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">package pack03;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.InputStream;
import java.sql.*;
import java.util.Iterator;
import java.util.Properties;
public class JDBCUtils {
private static String driverClass;
private static String url;
private static String username;
private static String password;
private static String sql;
private JDBCUtils(){ }
//封装注册驱动.这里是mysql 8.0的版本
static {
try {
//1.加载Reader对象
SAXReader reader = new SAXReader();
//2.加载xml对象
InputStream inputStream =
JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.xml");
Document document = reader.read(inputStream);
//3.获得根结点
Element rootElement = document.getRootElement();
//4.获得子元素
Iterator<Element> iterator = rootElement.elementIterator();
while (iterator.hasNext()){
Element element = iterator.next();
Iterator<Element> iterator1 = element.elementIterator();
while (iterator1.hasNext()){
Element element1 = iterator1.next();
String name = element1.getName();
if (name.equals("DriverClass")){
driverClass = element1.getStringValue();
}
else if (name.equals("Url")){
url = element1.getStringValue();
}
else if (name.equals("Username")){
username = element1.getStringValue();
}
else if (name.equals("Password")){
password = element1.getStringValue();
}
else if (name.equals("Sql")){
sql = element1.getStringValue();
}
}
}
Class.forName(driverClass);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//封装获得连接
public static Connection getConnection(){
try {
return DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//封装获得执行sql语句的对象
public static ResultSet getResult(Statement statement,Connection connection){
try {
return statement.executeQuery(sql);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//封装处理结果
public static void printResult(ResultSet resultSet){
try {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()){
for (int i = 1; i <= columnCount; i++) {
Object object = resultSet.getObject(i);
System.out.print(object + "\t");
}
System.out.println();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//封装释放资源
public static void closeAll(Statement statement,Connection connection){
try {
statement.close();
connection.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}</pre>
4.最后定义测试类
<pre class="prettyprint hljs java" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">package pack03;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
public class demo01 {
public static void main(String[] args) throws Exception {
//注册驱动.这里是mysql 8.0的版本
//获得连接.
Connection connection = JDBCUtils.getConnection();
//获得执行sql语句的对象
Statement statement = connection.createStatement();
//执行sql语句,并返回结果
ResultSet resultSet =
JDBCUtils.getResult(statement,connection);
//处理结果
JDBCUtils.printResult(resultSet);
//释放资源
JDBCUtils.closeAll(statement,connection);
}
}</pre>
今天通过一个小案例和大家分享了一下JDBC的另外一种通过xml的使用方法,xml比properties方法更为常见。大家根据自己实际项目情况使用即可。