使用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

哪个更好:JDBC 连接池,还是使用 SIngleton 类进行 JDBC 连接?

jdbc连接数据库的代码问题jdbc连接mysql数据库

JDBC连接数据库和改进

JDBC连接数据库

JDBC连接数据库