使用JDBC连接数据库
Posted 前行者鼠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用JDBC连接数据库相关的知识,希望对你有一定的参考价值。
使用JDBC连接数据库
一准备
1、 数据库服务是否开启
2、 连接的数据库是否是远程的
是检查远程连接的服务是否开启,或者用户是否有远程登录的权限
3、 检查客户机与数据库服务器之间是否能ping通
4、 准备要连接的数据库的驱动包
注意:请根据自己的数据库版本和jdk选择jar包
Oracle ojdbc6.jar
SQLServer :sqljdbc4.jar
mysql:mysql-connector-java-5.1.44-bin.jar
编写BaseDao要用到的jar包
dom4j-2.1.1.jar 用于xml解析
jstl.jar Result对象需要用到jstl支持
二数据库连接文件的配置
1、 使用属性文件(.properties)配置
#Oracle配置
#driver=oracle.jdbc.driver.OracleDriver
#connStr=jdbc:oracle:thin:@192.168.11.111:1521:orcl
#userName=scott
#userPwd=scott
#MySql 配置
userName=root
userPwd=root
connStr=jdbc:mysql://192.168.11.111:3306/PetDB
driver=com.mysql.jdbc.Driver
#SQL Server配置
#userName=sa
#userPwd=sasa
#connStr=jdbc:sqlserver://localhost:1433;databaseName=PetDB
#driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
2、 使用xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration SYSTEM "DBConfig.dtd">
<!--
Oracle配置
<configuration>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<connStr>jdbc:oracle:thin:@192.168.11.111:1521:orcl</connStr>
<userName>scott</userName>
<userPwd>scott</userPwd>
</configuration>
-->
<!--
SQLServer 配置
<configuration>
<driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver>
<connStr>jdbc:sqlserver://localhost:1433;databaseName=PetDB</connStr>
<userName>sa</userName>
<userPwd>sasa</userPwd>
</configuration>
-->
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<connStr>jdbc:mysql://192.168.11.111/PetDB</connStr>
<userName>root</userName>
<userPwd>root</userPwd>
</configuration>
三 BaseDao的编写和测试
1、 BaseDao的编写
package com.hx.basedao;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class BaseDao {
private static final String USER_PWD = "userPwd";
private static final String USER_NAME = "userName";
private static final String CONN_STR = "connStr";
private static final String DRIVER = "driver";
private static String driver = "";
private static String connStr = "";
private static String userName = "";
private static String userPwd = "";
static {
try {
getDBConfigByXML();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void getDBConfigPro() {
// 创建属性文件对象
Properties p = new Properties();
// 获取要读取的属性文件的输入流
// 注意属性文件的路径
// 路径只能以/开头,表示根目录
// 不能以./或../开头
// 或者其他目录开头
// 参考网址:https://blog.csdn.net/cyxinda/article/details/78254057
InputStream is = BaseDao.class.getResourceAsStream("/DBConfig.properties");
// 获取BaseDao的路径
// System.out.println(BaseDao.class.getClassLoader().getResource("").getPath());
// 输出此代码,获取到路径,对比配置文件
try {
// 把流加载到属性文件,读取对象
p.load(is);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
driver = p.getProperty(DRIVER);
connStr = p.getProperty(CONN_STR);
userName = p.getProperty(USER_NAME);
userPwd = p.getProperty(USER_PWD);
}
public static void getDBConfigByXML() throws Exception {
SAXReader reader = new SAXReader();
// 通过read方法读取一个文件 转换成Document对象
// System.out.println(BaseDao.class.getClassLoader().getResource("OracleConn.xml").getPath());
/// E:/WorkSpace/Utils/bin/OracleConn.xml
Document doc = reader.read(new File(BaseDao.class.getClassLoader().getResource("DBConfig.xml").getPath()));
// 获取根节点
Element root = doc.getRootElement();// configuration
// 获取根节点的子节点
List<Element> es = root.elements();
for (Element e : es) {
if (e.getName().equals(DRIVER)) {
driver = e.getText().trim();
// System.out.println(driver);
} else if (e.getName().equals(CONN_STR)) {
connStr = e.getText().trim();
} else if (e.getName().equals(USER_NAME)) {
userName = e.getText().trim();
} else if (e.getName().equals(USER_PWD)) {
userPwd = e.getText().trim();
}
}
}
java 如何使用jdbc连接mysql