数据库连接——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
- JDBC—Java数据库连接
- Java 数据库连接——JDBC
- java——jdbc数据库连接
- JDBC—Java的数据库连接
- JDBC——数据库连接
- 数据库连接——jdbc——java
- Java数据库连接——JDBC基础知识(JDBC简介)
- Java数据库连接——JDBC基础知识(JDBC使用详解)
- Java数据库连接——JDBC基础知识(JDBC总结)
- 数据库连接理解——JDBC
- 皮皮java笔记——java数据库连接:JDBC API
- Mysql数据库连接———JDBC,Java代码
- 【J2EE规范】数据库连接——JDBC
- JavaWeb——jdbc与dbcp数据库连接
- DRP总结—设置JDBC数据库连接池
- JDBC(11)—数据库连接池
- JAVA——数据库连接
- Java数据库连接——JDBC基础知识(操作数据库:增删改查)
- ORA-00257: archiver error
- R语言︱H2o深度学习的一些R语言实践——H2o包
- 删除归档日志_ORA-00257:archiver error.Connect internal only, until freed的问题
- 关于Struts2 UI标签<s:form>namespace配置问题
- unity 发布到Android平台 Splash Screen无法出现完整加载图片
- 数据库连接——jdbc——java
- opencv:求视频的前n帧的融合图像
- turtlebot2+激光雷达
- ListView和Scrolloview共用View.measure(widthMeasureSpec, heightMeasureSpec) 空指针异常
- 反射、注解与依赖注入总结
- 在swift下 代码加载xib
- mybatis与sql注入
- iOS SDK 9.3下载 解决Could not find Developer Disk Image问题
- Oracle 并行操作