mysql 数据库连接工具类_项目中连接数据库的工具类

在项目有时会用到不同数据库,项目写了一个连接不同数据库(包括mysql,SQL server, oracle ,access)的工具类: import java.io.File;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMet

在项目有时会用到不同数据库,项目写了一个连接不同数据库(包括mysql,SQL server, oracle ,access)的工具类:

import java.io.File;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class ConnectionDbUtils {

/**

* 获取数据库连接对象(sql server)

*

* @param server

* 服务器

* @param database

* 数据库名

* @param user_id

* 用户名

* @param password

* 密码

* @return Connection

* @throws ClassNotFoundException

* @throws SQLException

*/

public static Connection getSqlServerConnection(String server, String database, String user_id, String password)

throws ClassNotFoundException, SQLException {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connection con = DriverManager.getConnection("jdbc:sqlserver://" + server + ":1433;DatabaseName=" + database,

user_id, password);

return con;

}

/**

* 获取数据库连接对象(MySql)

*

* @param server

* 服务器

* @param database

* 数据库名

* @param user_id

* 用户名

* @param password

* 密码

* @return Connection

* @throws ClassNotFoundException

* @throws SQLException

*/

public static Connection getMySqlConnection(String server, String database, String user_id, String password)

throws ClassNotFoundException, SQLException {

Class.forName("com.mysql.jdbc.Driver");

return DriverManager.getConnection("jdbc:mysql://"+server+":3306/" + database,

user_id, password);

}

/**

* JDBC连接oracle

* @param server IP

* @param database 数据库

* @param user_id 用户名

* @param password 密码

* @param sql

* @return

* @throws ClassNotFoundException

* @throws SQLException

*/

public static Connection getOracleConnection(String server, String database, String user_id, String password)

throws ClassNotFoundException, SQLException {

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@" + server + ":1521:" + database, user_id,

password);

return conn;

}

/**

* JDBC连接Access

* @param database 数据库路径

* @param user_id 用户名

* @param password 密码

* @param sql

* @return

* @throws ClassNotFoundException

* @throws SQLException

* @throws IllegalAccessException

* @throws InstantiationException

*/

public static Connection getAccessConnection(String database, String user_id, String password)

throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {

System.out.println("==============" + database);

Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();

Connection conn = DriverManager.getConnection("jdbc:Access:///" + database, user_id, password);

System.out.println("连接成功");

return conn;

}

/**

* Access 查询数据

* @param database

* @param user_id

* @param password

* @param strSql

* @return

* @throws Exception

*/

public static List> queryAccessData(String database, String user_id, String password,

String strSql) throws Exception {

File file = new File(database);

if (file.exists()){

if (file.canWrite()) {

System.out.println("不只读");

} else {

System.out.println("只读");

file.setWritable(true);

}

} else {

System.out.println("不存在");

}

Connection con = ConnectionDbUtils.getAccessConnection(database, user_id, password);

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(strSql);

List> listMap = new ArrayList>();

while (rs.next()) {

Mapmap = new HashMap();

ResultSetMetaData rsmd = rs.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {

String columnName = rsmd.getColumnName(i);

Object objValue = rs.getObject(columnName);

map.put(columnName, objValue);

}

listMap.add(map);

}

return listMap;

}

/**

* Access增删改

* @param database

* @param user_id

* @param password

* @param sql

*/

public static void createAccessSQLExecute(String database, String user_id, String password, String sql) {

Statement stmt = null;

try {

Connection con = ConnectionDbUtils.getAccessConnection(database, user_id, password);

stmt = con.createStatement();

int i = stmt.executeUpdate(sql);

System.out.println("执行sql语句:" + sql);

System.out.println("处理成功!处理条数为" + i);

}

catch (Exception e) {

e.printStackTrace();

System.out.println("执行失败,请检查远程数据库是否打开服务");

}

finally {

try {

if (null != stmt) {

stmt.close();

}

}

catch (SQLException e) {

e.printStackTrace();

}

}

}

/**

* oracle 查询数据

* @param server

* @param database

* @param user_id

* @param password

* @param strSql

* @return

* @throws Exception

*/

public static List> queryOracleData(String server, String database, String user_id,

String password, String strSql) throws Exception {

Connection con = ConnectionDbUtils.getOracleConnection(server, database, user_id, password);

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(strSql);

List> listMap = new ArrayList>();

while (rs.next()) {

Mapmap = new HashMap();

ResultSetMetaData rsmd = rs.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {

String columnName = rsmd.getColumnName(i);

Object objValue = rs.getObject(columnName);

map.put(columnName, objValue);

}

listMap.add(map);

}

return listMap;

}

/**

* oracle增删改

* @param server

* @param database

* @param user_id

* @param password

* @param sql

*/

public static void createOracleSQLExecute(String server, String database, String user_id, String password,

String sql) {

Statement stmt = null;

try {

Connection con = ConnectionDbUtils.getOracleConnection(server, database, user_id, password);

stmt = con.createStatement();

System.out.println("执行sql语句:" + sql);

int i = stmt.executeUpdate(sql);

System.out.println("处理成功!处理条数为" + i);

}

catch (Exception e) {

e.printStackTrace();

System.out.println("执行失败,请检查远程数据库是否打开服务");

}

finally {

try {

if (null != stmt) {

stmt.close();

}

}

catch (SQLException e) {

e.printStackTrace();

}

}

}

/**

* 查询数据(sql server)

*

* @param server 服务器

* @param database 数据库名

* @param user_id 用户名

* @param password 密码

* @param strSql sql语句

* @return List>

* @throws Exception

*/

public static List> querySqlServerData(String server, String database, String user_id,

String password, String strSql) throws Exception {

Connection con = ConnectionDbUtils.getSqlServerConnection(server, database, user_id, password);

Statement stmt = con.createStatement();

System.out.println("querySqlServerData的sql语句===========" + strSql);

ResultSet rs = stmt.executeQuery(strSql);

List> listMap = new ArrayList>();

while (rs.next()) {

Mapmap = new HashMap();

ResultSetMetaData rsmd = rs.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {

String columnName = rsmd.getColumnName(i);

Object objValue = rs.getObject(columnName);

map.put(columnName, objValue);

}

listMap.add(map);

}

return listMap;

}

/**

* 执行sql的添加、修改、删除操作

*

* @param conn

* @param sql

*/

public static void createSQLExecute(String server, String database, String user_id, String password,

Listsql) {

Statement stmt = null;

try {

Connection con = ConnectionDbUtils.getSqlServerConnection(server, database, user_id, password);

stmt = con.createStatement();

for (String s : sql) {

System.out.println("执行sql语句:" + sql);

int i = stmt.executeUpdate(s);

System.out.println("处理成功!处理条数为" + i);

}

}

catch (Exception e) {

e.printStackTrace();

System.out.println("执行失败,请检查远程数据库是否打开服务");

}

finally {

try {

if (null != stmt) {

stmt.close();

}

}

catch (SQLException e) {

e.printStackTrace();

}

}

}

/**

* 执行sql的添加、修改、删除操作

*

* @param conn

* @param sql

*/

public static void createSQLExecute(String server, String database, String user_id, String password, String sql) {

Statement stmt = null;

try {

System.out.println("执行sql语句:" + sql);

Connection con = ConnectionDbUtils.getSqlServerConnection(server, database, user_id, password);

stmt = con.createStatement();

int i = stmt.executeUpdate(sql);

System.out.println("处理成功!处理条数为" + i);

}

catch (Exception e) {

e.printStackTrace();

System.out.println("执行失败,请检查远程数据库是否打开服务");

}

finally {

try {

if (null != stmt) {

stmt.close();

}

}

catch (SQLException e) {

e.printStackTrace();

}

}

}

/**

* MySql 查询数据

* @param server

* @param database

* @param user_id

* @param password

* @param strSql

* @return

* @throws Exception

*/

public static List> queryMySqlData(String server, String database, String user_id,

String password, String sql) throws Exception {

Connection con = ConnectionDbUtils.getMySqlConnection(server, database, user_id, password);

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery(sql);

List> listMap = new ArrayList>();

while (rs.next()) {

Mapmap = new HashMap();

ResultSetMetaData rsmd = rs.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {

String columnName = rsmd.getColumnName(i);

Object objValue = rs.getObject(columnName);

map.put(columnName, objValue);

}

listMap.add(map);

}

return listMap;

}

/**

* 执行MySql的增删改

* @param server

* @param database

* @param user_id

* @param password

* @param sql

*/

public static void createMySqlExecute(String server,String database,String user_id,String password,String sql){

Connection con=null;

Statement stmt = null;

try {

System.out.println("执行sql语句:" + sql);

con= ConnectionDbUtils.getMySqlConnection(server, database, user_id, password);

stmt = con.createStatement();

int successCount = stmt.executeUpdate(sql);

System.out.println("处理成功!处理条数为" + successCount);

}

catch (Exception e) {

e.printStackTrace();

System.out.println("执行失败,请检查远程数据库是否打开服务");

}

finally {

try {

if (null != stmt) {

stmt.close();

}

}

catch (SQLException e) {

e.printStackTrace();

}

}

}

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值