用java将一条数据插入oracle,需要查看原数据库中是否有此条记录

例如(李明男18唱歌)首先要用“李明”搜索oracle数据库中是否存在叫李明的记录,若没有则将之插入。谢谢帮忙写下搜索和插入代码... 例如(李明 男 18 唱歌)首先要用“李明”搜索oracle数据库中是否存在叫李明的记录,若没有则将之插入。谢谢帮忙写下搜索和插入代码 展开
 我来答
greatlubin
2010-06-01 · TA获得超过434个赞
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:112万
展开全部
需要用两个类来实现,DB类用来加载数据库驱动,建立数据库连接,Opdb类用来查询和插入数据
OPDB类我只写了测试用的main方法,需要调用DB类来做查询和插入数据的操作
OPDB.java的源码如下

public class Opdb {
public static void main(String[] args) {
DB db = new DB();
String sql = "select * from user_info where user_name = '李明'";
db.doPstm(sql);//查询数据库中是否存在李明的记录
if(db.geRs()==null)//如果查询的结果为空,则插入数据{
String sql2 = "inset into user_info values("李明","男","18","唱歌")";
db.doPstm(sql2);//执行插入的sql语句
}
db.close;//关闭数据库连接
}

}

DB.java的源代码如下

package com.yxq.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DB {
private Connection con;
private PreparedStatement pstm;
private String user="username";
private String password="password";
private String className="oracle.jdbc.driver.OracleDriver";
private String url="jdbc:oracle:thin:@localhost:orcl";

public DB(){
try{
Class.forName(className);
}catch(ClassNotFoundException e){
System.out.println("加载数据库驱动失败!");
e.printStackTrace();
}
}

/**创建数据库连接*/
public Connection getCon(){
try {
con=DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
System.out.println("创建数据库连接失败!");
con=null;
e.printStackTrace();
}
return con;
}

public void doPstm(String sql,Object[] params){
if(sql!=null&&!sql.equals("")){
if(params==null)
params=new Object[0];

getCon();
if(con!=null){
try{
System.out.println(sql);
pstm=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
for(int i=0;i<params.length;i++){
pstm.setObject(i+1,params[i]);
}
pstm.execute();
}catch(SQLException e){
System.out.println("doPstm()方法出错!");
e.printStackTrace();
}
}
}
}

public ResultSet getRs() throws SQLException{
return pstm.getResultSet();
}
public int getCount() throws SQLException{
return pstm.getUpdateCount();
}
public void closed(){
try{
if(pstm!=null)
pstm.close();
}catch(SQLException e){
System.out.println("关闭pstm对象失败!");
e.printStackTrace();
}
try{
if(con!=null){
con.close();
}
}catch(SQLException e){
System.out.println("关闭con对象失败!");
e.printStackTrace();
}
}
}
youkun132
2010-05-31 · TA获得超过1225个赞
知道答主
回答量:141
采纳率:0%
帮助的人:58万
展开全部
你这个就不是一个SQL语句能搞定的了!而且要用JAVA的代码来判断 JAVA刚刚好不会 爱莫能助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式