如何利用java语言连接数据库啊? 有查找 删除 查询等功能的?
解决方案 »
- 关于JAVA代码混淆
- hibernate 与存储过程
- 一个hiber的ONE-MANY问题!
- 求 hipergate(http://www.hipergate.org/) 提供的Demo
- 谁有spring2.0 的包给小弟一个地址!
- HQL的批量修改 不同值问题
- 排列组合问题求算法
- 请问STRUTS里Tiles标签与template标签的区别?
- 网页模板的问题--100分
- spring ioc的好处是什么?不用new对象了?可以也要xxx.getBean()啊?没觉得有啥好处啊?
- 请问为什么成员变量int i不赋值的话,会有默认的0呢,
- 根据ip地址 获取周边信息 有什么技术能实现 最好是基于Java或Flex的开源
jdbc
有查找 删除 查询等功能的?
写不同的sql完成不同的功能
找个jdbc的例子看看去
Connection con;
Statement stat;
ResultSet rs;
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;databasename=wq";
/**
* 获取数据库连接
* @return
*/
public Connection getcon()
{
try {
Class.forName(this.driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
this.con=DriverManager.getConnection(this.url,"sa","sa");
} catch (SQLException e) {
e.printStackTrace();
}
return this.con;
}
/**
* 公共的查询方法
* @param sql
* @return 返回ResultSet结果集
*/
public ResultSet executeQuery(String sql)
{
this.getcon();
try {
this.stat=this.con.createStatement();
this.rs=this.stat.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return this.rs;
}
/**
* 执行 增删改
* @param sql
* @return 返回Boolean
*/
public boolean executeUpdate(String sql)
{
boolean flag=false;
this.getcon();
try {
this.stat=this.con.createStatement();
int i=this.stat.executeUpdate(sql);
if(i>0)
{
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
/**
* 关闭连接
*/
public void close()
{
try{
if(rs != null)
{
rs.close();
}
if(stat != null)
{
stat.close();
}
if(con != null)
{
con.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
import java.util.*;
import java.sql.*;
import java.lang.reflect.*;
public class DbHelp {
private static final String DRIVERNAME="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://localhost:1433;databasename=Demo";
private static final String USERNAME="sa";
private static final String PWD="123456";
private Connection conn=null;
//非静态块的目的是当创建实例时就加载驱动和创建连接
{
try{
Class.forName(DRIVERNAME);
}catch(Exception ex){
System.out.println("驱动加载失败");
}
try{
conn=DriverManager.getConnection(URL,USERNAME,PWD);
}catch(Exception ex){
System.out.println("创建连接失败");
}
}// 封装sql语句的新增,修改,删除
public boolean addUpdate(String sql){
if(conn==null) return false;
boolean sign=false;
try{
Statement stat=conn.createStatement();
int rows=stat.executeUpdate(sql);
if(rows>0){
sign=true;
}else{
sign=false;
}
}catch(SQLException ex){
System.out.println("数据库连接失败");
}finally{
if(conn!=null){
try{
conn.close();
}catch(SQLException ex){
}
}
}
return sign;
}
//负责单表查询
public List findUpdate(String sql,String obj){
if(conn==null) return null;
List list=new ArrayList();
try{
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
// ResultSetMetaData rsmd=rs.getMetaData();
// String[] str=new String[rsmd.getColumnCount()];
// //循环打出列明
// for(int i=1;i<rsmd.getColumnCount();i++){
// str[i-1]=rsmd.getColumnName(i);
// }
//获取被封装的对象
Class c=Class.forName(obj);
Method[] m=c.getDeclaredMethods();
while(rs.next()){
//创建对象实例
Object o=c.newInstance();
for(int i=0;i<m.length;i++){
Method ms=m[i];
if(ms.getName().startsWith("set")){
String cname=ms.getName().substring(3);
ms.invoke(o, rs.getString(cname));
}
}
list.add(o);
}
}catch(Exception ex){
}finally{
if(conn!=null){
try{
conn.close();
}catch(SQLException ex){
}
}
}
return list;
}
//用查询语句查询返回单条记录的方法,
public Object findsignUpdate(String sql,String objName){
if(conn==null) return null;
Object chuan=null;
try{
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
Class c=Class.forName(objName);
Method[] m=c.getDeclaredMethods();
if(rs.next()){
//创建对象实例
chuan=c.newInstance();
for(int i=0;i<m.length;i++){
Method ms=m[i];
if(ms.getName().startsWith("set")){
String cname=ms.getName().substring(3);
ms.invoke(chuan, rs.getString(cname));
}
}
}
}catch(Exception ex){
}finally{
if(conn!=null){
try{
conn.close();
}catch(SQLException ex){
}
}
}
return chuan;
}
//多表联合查询
public List findUpdate(String sql)
{
if(conn==null)
{
return null;
}
List rong=new ArrayList();
try
{
Statement stat=conn.createStatement();
ResultSet rs=stat.executeQuery(sql);
ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next())
{
List rows=new ArrayList();
for(int i=1;i<=rsmd.getColumnCount();i++)
{
rows.add(rs.getString(i));
}
rong.add(rows);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}finally
{
try
{
if(conn!=null)
{
conn.close();
}
}catch(Exception e)
{
e.printStackTrace();
}finally
{
return rong;
}
}
}
//多表联合进行增加,删除,修改
public boolean addUpdate(Object...sql){
if(conn==null) return false;
boolean jiao=false;
try
{
conn.setAutoCommit(false);
Statement stat=conn.createStatement();
for(Object t:sql)
{
stat.addBatch(t.toString());
}
stat.executeBatch();
conn.commit();
jiao=true;
}catch(Exception ex)
{
try
{
conn.rollback();
}catch(SQLException x)
{
x.printStackTrace();
}
}finally
{
try
{
conn.setAutoCommit(true);
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}finally
{
return jiao;
}
}
}
}
private final static String DB_URL = "jdbc:oracle:thin:@192.168.2.66:1521:orcl66";
private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
private final static String DB_USERNAME = "cpp";
private final static String DB_PASSWORD = "cpp";
public Connection getConnection(){ Connection conn = null;
try{
Class.forName(DB_DRIVER);
conn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
}catch(Exception ex){
ex.printStackTrace();
}
return conn;
}
}