`
紫梦飘逸
  • 浏览: 47863 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JDBC对表的操作总结

阅读更多

         概念: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语句怎么写,还有就是不怎么会写数据库里面的过程,块。

 

 

 

 

2
0
分享到:
评论
4 楼 紫梦飘逸 2014-10-22  
songjie_xuan 写道
               

写的真的很好
3 楼 紫梦飘逸 2014-10-22  
Y_1746119035 写道
写得很好写得很好写得很好写得很好写得很好写得很好

真的很好
2 楼 songjie_xuan 2014-10-22  
               
1 楼 Y_1746119035 2014-10-22  
写得很好写得很好写得很好写得很好写得很好写得很好

相关推荐

    自动生成 能够自动生成 对表操作的jsp 页面

    总结,自动生成对表操作的JSP页面涉及了JSP、JavaScript、数据库操作、代码生成、MVC设计模式以及自定义JSP标签等多个技术点,通过合理利用这些技术,可以极大地提高开发效率和代码的可维护性。

    Mysql5.6、Mysql5.7 JDBC驱动

    同时,InnoDB存储引擎的事务性能得到增强,支持了在线DDL(Data Definition Language),这意味着在执行DDL操作时,不会阻塞其他用户对表的读写操作。另外,5.7还改进了查询优化器,支持更多的索引类型,如空间索引...

    JDBC 版本的增删改查---Version1.2

    我们对表的操作是不是就是同样的,也就是说在org.zhang.dao 包中类的功能就是同样的,如果我没说明白,可以这样理解----把相同功能的方法提出来,变成接口,再让类实现这个接口。看看下面的代码吧 嘎嘎!

    jsp+javabean+servlet实现对表的增删改查

    总结来说,这个主题涵盖了Web开发的基础知识,包括JSP、JavaBean和Servlet的协同工作,以及如何利用JDBC和Oracle数据库进行数据操作。理解并掌握这些概念和技术,对于成为一名合格的Java Web开发者至关重要。

    软件222李林香 (1).docx

    编写程序对表进行添加、删除、修改、查询操作,并使用 JDBC 连接数据库。 六、实验步骤和效果经验总结 在实验中,我们可以了解到如何创建 Maven 项目、配置 pom.xml 文件、创建数据库、使用 C3P0 数据源配置文件和...

    mysql的驱动与管理工具

    总结来说,"mysqlEDGFang"压缩包提供的MySQL JDBC驱动和SQLyog工具,是Java开发者和数据库管理员在MySQL环境中进行数据操作和管理的重要资源。通过使用这些工具,可以极大地提升工作效率,简化数据库管理工作。

    servlet+jsp增删改查

    Servlet通过JDBC(Java Database Connectivity)API连接数据库,执行SQL语句来完成数据的操作。增操作对应INSERT语句,删操作对应DELETE,改操作对应UPDATE,查操作对应SELECT。 5. **请求处理流程**: 用户在JSP...

    java+SQL教学管理系统.doc

    4. 数据库连接与操作:使用JDBC(Java Database Connectivity)接口,建立Java程序与数据库的连接,执行SQL语句进行CRUD(Create, Read, Update, Delete)操作。 四、取得的结果 这部分展示了系统实现后的界面效果...

    apache-phoenix-4.9.0-HBase-1.1-bin.tar.gz

    Phoenix 允许开发者使用标准的 SQL 语法来操作 HBase 表,使得那些习惯于 SQL 的开发人员能够轻松地在 HBase 上工作,而无需学习新的查询语言。 **Phoenix 特性** 1. **SQL 支持**:Phoenix 提供了一个 SQL 接口,...

    mysql集群主从安装总结

    ### MySQL集群主从安装总结 在本篇文章中,我们将详细探讨如何进行MySQL集群的主从复制配置,并通过一系列具体的步骤来实现这一目标。MySQL主从复制是一种常见的数据冗余技术,它能够帮助我们构建高可用性和高可靠...

    基于Java的智能背单词自测系统设计论文

    - **交互逻辑**: 用户通过前端界面进行操作,后端处理业务逻辑并通过JDBC与数据库交互。 2. **数据库设计** - **表结构**: 包括用户表、单词表、测试记录表等关键表。 - **关系设计**: 例如,用户表与测试记录表...

    ORACLE免安装可视化工具a1111111

    5. 数据库对象管理:包括创建、修改、删除、权限管理等操作,对表、视图、索引、同义词等对象进行全方位管理。 6. 项目管理:支持将数据库对象组织成项目,便于团队协作和版本控制。 7. 导入导出:可以方便地将数据...

    基于java的餐厅点菜系统计算机科学与技术本科毕业论文.doc

    在实现时,我们使用了 Java 语言程序设计的基本知识和基本方法,包括数据库的基本操作、常用查询语句的使用以及 ACCESS 对表的数据的设计。我们还使用了图形化编程和 JDBC 技术来实现餐厅点菜系统的设计。 系统功能...

    2021-2022计算机二级等级考试试题及答案No.18125.docx

    题目中提到的选择查询、交叉表查询、操作查询和参数查询的区别在于是否能够对表中的数据进行修改。其中,**操作查询**是可以修改数据的,因此正确答案是 C. 操作查询。 ### 2. 用户权限管理 - 当新用户创建后,...

    2021-2022计算机二级等级考试试题及答案No.4023.docx

    - **解释**: 除了选择查询之外,操作查询还可以对表中数据进行修改。操作查询包括更新查询、追加查询、删除查询和生成表查询等类型。 ### 20. 数据结构基础 - **知识点**: 顺序存储结构的特点。 - **解释**: 在...

    My oracle笔记

    总结,Oracle数据库涉及的知识点广泛,包括但不限于数据库管理、SQL查询、PL/SQL编程、JDBC接口使用等。熟练掌握这些技能对于成为一位优秀的Oracle数据库管理员至关重要。在实践中,还需要不断学习和掌握新的特性和...

    sql scirpt builder

    总结来说,SQL Script Builder是一款实用的数据库管理工具,通过自动生成SQL脚本,显著提升了数据库操作的效率,尤其在处理大量数据时,它的价值更为凸显。无论是对于数据库的迁移、数据恢复,还是日常的数据维护,...

Global site tag (gtag.js) - Google Analytics