如何使用java对oracle数据库进行增删查改
创建数据库了连接
编写数据库操作语句
获取结果
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
public class BaseDao {
private static String driver = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "s2";
private static String pwd = "s2";
public static Connection getcon() {
Connection c = null;
try {
Class.forName(driver);
c = DriverManager.getConnection(url, user, pwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c;
}
public static int executeUpdate(String sql,Object...param){
Connection c=getcon();
PreparedStatement p=null;
int num=0;
try {
p=c.prepareStatement(sql);
if (param!=null) {
for (int i = 0; i < param.length; i++) {
p.setObject(i+1, param[i]);
}
}
num=p.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
p.close();
c.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return num;
}
public static Result executeQuery(String sql,Object...param){
Connection c=getcon();
PreparedStatement p=null;
ResultSet rs=null;
Result r=null;
try {
p=c.prepareStatement(sql);
if (param!=null) {
for (int i = 0; i < param.length; i++) {
p.setObject(i+1, param[i]);
}
}
rs=p.executeQuery();
r=ResultSupport.toResult(rs);
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
p.close();
c.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return r;
}
}
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class BaseDao {
// private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
// private static final String URL="jdbc:sqlserver://localhost:1433;databaseName=orcl";
public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String URL = "jdbc:oracle:thin:@localhost:1521:ORCL";
private static final String USERNAME="sa"; //你需要用自己的用户名
private static final String PASSWORD="sa"; //自己的密码
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
public Connection getConnection(){
try {
Class.forName(DRIVER);
try {
conn=DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
public void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pst!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void setParams(Object...params){
if(null!=params){
for(int i=0;i<params.length;i++){
try {
pst.setObject(i+1, params[i]);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public int executeUpdate(String sql,Object...params){
int result=-1;
conn=getConnection();
try {
pst=conn.prepareStatement(sql);
setParams(params);
result=pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
public List<Map<String, Object>> executeQuery(String sql, Object... params) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); conn = getConnection();
try {
pst = conn.prepareStatement(sql);
setParams(params);
rs = pst.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map<String, Object> row = null;
while (rs.next()) {
row = new HashMap<String, Object>();
for (int i = 0; i < columnCount; i++) {
String columnName = rsmd.getColumnName(i + 1);
Object value = rs.getObject(columnName);
row.put(columnName.toLowerCase(), value);
}
result.add(row);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close();
}
return result;
}
public int execute(String sql, Object... params) {
int result = -1;
conn = getConnection();
try {
pst = conn.prepareStatement(sql);
setParams(pst, params); result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
close();
}
return result;
} public ResultSet query(String sql, Object... params) {
conn = getConnection();
try {
pst = conn.prepareStatement(sql);
setParams(pst, params);
rs = pst.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}
最基本的可以使用JDBC操作,一般在service层对数据库进行增删改查。
具体步骤一般如下:
添加对应数据库的驱动包。
导入DBUtils工具包,也可以自己手动写一个DBUtils,用于数据库的连接管理。
编写service层来操作数据库。
JDBC网上有很多资料,可以边查看边练习。