当前位置:首页 > 开发 > 数据库 > 正文

JDBC对表的操作总结

发表于: 2014-10-20   作者:紫梦飘逸   来源:转载   浏览:
摘要:          概念:JDBC是用JAVA操作数据库的方法,对表的操作属于基本操作          用途:JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果     &n

         概念:JDBC是用JAVA操作数据库的方法,对表的操作属于基本操作

         用途:JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果

         好处:1,,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势,其次它增进了访问数据的效率和快捷程度

                  2, Java 和 JDBC 的结合,使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。

       JDBC方法:

             1,装载数据库驱动

             2,定义连接字符串

             3,获得字符串的连接

             4,获得数据库的连接
             5.定义调用的过程的sql语句
             6.,获得编译对象

             7.执行   

具体如下:

1--3:

package JDB;

import java.sql.Connection;
import java.sql.DriverManager;

/**
 * 单例创建数据库连接对象
 * @author Administrator
 *
 */
public class DBU {
   private static Connection conn=null;
	//私有化构造方法
	private DBU(){
		
	}
	public static Connection getconn(){
		if(conn!=null){
		return conn;}
	try{
		
	//1,装载驱动
	Class.forName("oracle.jdbc.driver.OracleDriver");
	// 2.定义连接字符串
	String url = "jdbc:oracle:thin:@172.19.171.243:1521:MYORACLE";
	//3.获得字符串的连接
	conn=DriverManager.getConnection(url, "scott", "scott");
		
		
	return conn;	
	}catch(Exception ef){
		ef.printStackTrace();
			
	}
	  return null;
	
	}
	
	
	
	
	
	
	
	
	
}

 4-7:

 

package JDB;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 使用jdbc对表的增删改查
 * 过程,块,
 * @author Administrator
 *
 */
public class pro {
      public static void main(String[] args) {
		pro p = new pro();
		//p.pro_upname(3, "八条"); 改
		//p.pro_add(6, "男", 18, "红中"); 增加
		//p.pro_drop(1); 
		p.select(3);
		
		
	}
      
      public void pro_upname(int id,String newName){
    	  
    	  try{
    		//1,获得数据库的连接
    		 Connection conn =DBU.getconn();
    		   //调用sql
    		 String sql ="{call pro_2(?,?)}";
    		 //2,获得数据库编译对象
    		 CallableStatement stm =conn.prepareCall(sql);
    		 
    		   //赋值:
    		 
    		 stm.setInt(1,id);
    		 stm.setString(2,newName);
    		 
    		 //执行过程
    		 stm.execute();
    		 
    		  
    	  }catch(Exception ee){
    		  ee.printStackTrace();
    		  
    		  
    	  }
    	  
      }
      
      
      //增加数据的
      public void pro_add(int id,String sax,int age,String name){
    	  
    	  try{
    		
    	//1,获得数据库的连接
    		 Connection conn=DBU.getconn();
    	//2,定义调用的过程的sql语句
    		 String sql = "{call pro_3(?,?,?,?)}";
    	//3,获得编译对象
    		 CallableStatement cstm =conn.prepareCall(sql);
    	//4,给?赋值
    		 cstm.setInt(1, id);
    		 cstm.setObject(2, sax);
    		 cstm.setInt(3, age);
    		 cstm.setObject(4, name);
    		 
      //5,执行结果
    		 cstm.execute();
    	  }catch(Exception ds){
    		  
    		  ds.printStackTrace();
    		  
    	  }
    	    
      }
      //删除的
      public void pro_drop(int  id){
    	 
    	  try{
    	  
    	  //1,获得数据库的连接
    	 Connection conn= DBU.getconn();
    	   //2,定义sql
    	 String sql ="{call pro_delete(?)}";
    	 
    	 //3,获得编译对象
    	 CallableStatement ps = conn.prepareCall(sql);
    	   //4,给问号赋值
    	 ps.setInt(1, id);
    	   //5,开始执行
    	 ps.execute();
    	  
    	 
    	 
    	  }catch(Exception e){
    		  
    		  System.out.println("这里有问题");
    		  
    		  
    	  }
    	   
    	  
      }
      //写一个查询的方法
      public void select(int id){
    	  try{
    	//1,获得数据库连接
    	Connection conn=DBU.getconn();
    	//2,定义sql
    	String asa = "{call pro_select(?,?,?)}";
    	//3,获得编译对象
    	CallableStatement psd = conn.prepareCall(asa);
    	//4,赋值
    	psd.setInt(1, id);
//    	psd.setString(2, name);
//    	psd.setInt(3, age);java.sql.Types.VARCHAR
    	psd.registerOutParameter(2, java.sql.Types.VARCHAR);
    	psd.registerOutParameter(3, java.sql.Types.VARCHAR);
    	//执行
    	psd.execute();
    	// 获得输出参数的数据
    				String Name = (String) psd.getObject(2);
    				String age = (String) psd.getObject(3);
    				System.out.println("姓名:" + Name + " 年龄:" + age); 
    	
  
    	  }catch(Exception er){
    		  
    		  er.printStackTrace();
    		  
    	  }
    	  
    	  
    	  
      }
      
      
}

 

   数据库的删除和查询的过程:

--写一个删除的过程  指定ID的
create or replace procedure pro_delete(v_id userlog.id%type) is
begin
delete from userlog where Id=v_id;
end;


--写一个查询 名字和 年龄的过程
create or replace procedure pro_select(v_id in userlog.id%type,v_name out userlog.name%type,v_age out userlog.age%type) is 
begin 
select name ,age into v_name,v_age from userlog where Id=v_id;  
end;

  

  在调用过程的时候,做总结:

   1,在ecilpse中输出查询的结果时,在oracle中的过程的形式参数中,形参要表明in 或 out .

   2,在给问号赋值的时候,如果不知道转成什么数据类型,就写object。

   3,在你书写的SQL语句后,在写上System.out.println("你的SQL语句");用来查看你写的是否正确

  4,数据库中定义类型是,使用 表名.字段名%type.是很方便的

  5,数据库里的 show  errors; 真不错

 

  问题:

经过这次,清楚了Java连接数据库的基本操作,问题:呵,有时就忘了sql语句怎么写,还有就是不怎么会写数据库里面的过程,块。

 

 

 

 

JDBC对表的操作总结

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
先定义好实体类,我简化了属性: package org.lmw.crud.po; /** * * <br/>Copyright (C), 201
当应用程序需要处理的数据量比较大时,为了更加合理地存储、管理和查询数据,往往使用关系数据库来
有时候遇到对多报表进行操作,采用DataSet是个不错的选择。建立一个虚拟表,将所有数据填到里面,有
1、概述 2、JDBC 3、项目引用jar包 注:在finally中反向关闭资源 rs.close(); stmt.close(); conn.c
JDBC Java DataBase Connectivity,Java数据库连接 import java.sql.DriverManager; import java.sql
本章目标 了解JDBC 2.0提供的主要新特性 了解可滚动结果集的操作 了解结果集的增加、修改、删除操作
CREATE DATABASE demo; USE demo; DROP TABLE IF EXISTS user; CREATE TABLE user( ...... ); DESC
一:配置MySQL数据库的驱动程序 1 . 将MySQL数据库的驱动程序配置到classpath,修改或者新建本机的环
一:配置MySQL数据库的驱动程序 1 . 将MySQL数据库的驱动程序配置到classpath,修改或者新建本机的环
1. 添加数据 通过JDBC向数据库添加数据,可以使用INSERT语句实现插入数据SQL语句,对于SQL语句中的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号