数据库连接——jdbc——java

来源:互联网 发布:linux grub命令进系统 编辑:程序博客网 时间:2024/05/16 00:41

对于某些初学者来说理解jdbc可能比较难 但实际上和我们操作数据库的操作是一样的

1,获取driver=打开数据库

2,获取数据库连接=打开数据库输入用户名和密码

3,获取连接数据库名称=获取数据库名称

4,,获取preparestatement=新建查询

5,sql语句操作数据库=sql语句操作数据库

当然不同的数据库的实现方式有些差别但理论是一样的

下面是有些方法是进行封装了的

参数可以自己定义 我这里是为了更好的让用户自定义就把一些数据设置成了参数

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;


/**
 * JDBC
 * 只支持MySql,SQLServer,Oracle,Sybase数据库
 * sqlsever连接 driver ="com.microsoft.sqlserver.jdbc.SQLServerDriver"
 *         连接数据库代码示例: jdbc:sqlserver://127.0.0.1:3306;databasename=boxmanager
 * MySql连接 driver ="com.mysql.jdbc.Driver"
 *          连接数据库代码示例: jdbc:mysql://127.0.0.1:3306/boxmanager
 * Oracle 连接 driver="oracle.jdbc.driver.OracleDriver"
 *         连接数据库代码示例:jdbc:oracle:thin:@127.0.0.1:1521:simlink
 * Sybase 连接 driver="com.sybase.jdbc3.jdbc.SybDriver"
 *         连接数据库代码示例:jdbc:sybase:Tds:192.168.100.252:4500/myDB
 * @author shenlunshou@163.com
 * @version thefirst
 */
public class owndao {
// 变量声明
private Connection con;
private PreparedStatement pre;
private ResultSet res;


// 连接数据库
private Connection ConnectionDatabase(String type, String ip, String port,
String databasename, String user, String pwd,String driver) {
System.out.println("连接数据库"+type+driver);
//如果为SQLServer数据库
if (type.equals("SQLServer")) {
try {
Class.forName(driver);
con = DriverManager.getConnection("jdbc:sqlserver://" + ip
+ ":" + port + ";databasename=" + databasename + ";", user, pwd);
return con;
} catch (Exception e) {
e.printStackTrace();
return null;
}
} else if (type.equals("MySql")) {
//连接MySql数据库
try {
Class.forName(driver);
con = DriverManager.getConnection("jdbc:mysql://" + ip
+ ":" + port + "/" + databasename + ";", user, pwd);
return con;
} catch (Exception e) {
e.printStackTrace();
System.out.println("出错了");
return null;
}
} else if (type.equals("Oracle")) {
//连接Oracle数据库
try {
Class.forName(driver);
con = DriverManager.getConnection("jdbc:oracle:thin:@" + ip
+ ":" + port + ":" + databasename + ";", user, pwd);
return con;
} catch (Exception e) {
e.printStackTrace();
return null;
}

else if(type.equals("Sybase")){
//连接Sybase数据库
try {
Class.forName(driver).newInstance();
Properties sysProps = System.getProperties();
sysProps.put("user", user); // 设置数据库访问用户名
           sysProps.put("password",pwd);
con = DriverManager.getConnection("jdbc:sybase:Tds:" + ip
+ ":" + port + ":" + databasename + ";", sysProps);
return con;
} catch (Exception e) {
e.printStackTrace();
return null;
}

}else {
return null;
}
}


// 查询方法
public ArrayList<Map<java.lang.String, Object>> executeQuery(String type, String ip, String port,
String databasename, String user, String pwd,String driver,String sql,
Object obj[]) {
ArrayList<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
try {
pre = ConnectionDatabase(type, ip, port, databasename, user, pwd, driver).prepareStatement(sql);
if (obj != null && obj.length > 0) {
for (int i = 0; i < obj.length; i++) {
pre.setObject(i + 1, obj[i]);
}
}
res = pre.executeQuery();
if (res != null) {
while (res.next()) {
Map<String, Object> map = new HashMap<String, Object>();
ResultSetMetaData rsmd = res.getMetaData();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
map.put(rsmd.getColumnName(i + 1), res.getObject(i + 1));
}
list.add(map);
}
}
} catch (SQLException e) {
e.printStackTrace();
return null;
} finally {
last();
}
if (list.size() > 0) {
return list;
} else {
return null;
}
}


// 增删改方法
public boolean executeUpdate(String type, String ip, String port,
String databasename, String user, String pwd,String driver,String sql, Object[] obj) {
int a = 0;
try {
pre = ConnectionDatabase(type, ip, port, databasename, user, pwd, driver).prepareStatement(sql);
if (obj != null && obj.length > 0) {
for (int i = 0; i < obj.length; i++) {
pre.setObject(i + 1, obj[i]);
}
}
a = pre.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
return false;
} finally {
last();
}
if (a > 0) {
return true;
} else {
return false;
}
}


// finally方法
private void last() {
try {
if (res != null) {
res.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (pre != null) {
pre.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
3 0
原创粉丝点击