zoukankan      html  css  js  c++  java
  • jdbc,链接调用数据库的方法——例题

    package com.jdbcke;
    
    import java.sql.Connection; 
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import javax.swing.plaf.synth.SynthStyle;
    
    public class ke1 {
    
    	public static void main(String[] args) {
    
    		try {		//访问数据库
    			
    			//1.加载驱动;加载数据库提供的驱动类
    			Class.forName("oracle.jdbc.driver.OracleDriver");
    			
    			//2.获取数据库连接,通过java的驱动管理器
    			//url——数据库地址;user——用户名;password-密码
    			//不同的数据库地址写法不一样
    			Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcltao",
    					"test0816","123456");
    			
    			System.out.println("连接成功");
    			
    			//3.获得操作数据库的声明Statement
    			Statement st=conn.createStatement();
    			
    			//4.操作数据,增删改查
    			//执行操作,增
    			int i =st.executeUpdate("insert into student (sno,sname,ssex)"+"values('1517','小军','男')");
    			System.out.println("添加数据成功,返回值="+i);//返回值的意思:该操作影响的数据记录条数。
    			
    			//改
    //			int i=st.executeUpdate("update student set ssex='男' where ssex='1'");
    //			System.out.println("添加数据成功,返回值="+i);
    			
    			//查ResultSet数据结果集
    			ResultSet rs= st.executeQuery("select * from student");			
    			//遍历结果集
    			while(rs.next())	//next() 判断是否存在下一条记录,如果存在,移动指针到一下条记录数据
    			{
    				//读取数据
    				String sno=rs.getString("sno");
    				String sname=rs.getString("sname");
    				String ssex=rs.getString("ssex");
    				
    				System.out.println("sno="+sno+"sname="+sname+"ssex="+ssex);
    			}
    			
    			
    			//3.4创建声明与执行PreparedStatement
    //			String sql="select * from kaihubiao where yhcard=? and cardmm=?";
    //			PreparedStatement ps= conn.prepareStatement(sql);
    //			ps.setString(1, cardid);
    //			ps.setString(2, mm);
    //			//执行
    //			ResultSet rs= ps.executeQuery();
    //			//遍历
    //			rtn=rs.next();//如果有数据就验证通过
    			
    			
    			//补充知识
    				
    			//调用存储过程
    //			CallableStatement cs=conn.prepareCall("{call 存储过程名(?,?)}");
    			
    			
    			//获取与数据库相关的信息
    			DatabaseMetaData dm= conn.getMetaData();
    			System.out.println("URL="+dm.getURL());
    			System.out.println("名称="+dm.getUserName());
    			System.out.println("产品名称="+dm.getDatabaseProductName());
    			
    			//结果集的元数据	——可以获得数据库表中的列明
    			ResultSetMetaData rsmd =rs.getMetaData();
    			System.out.println("列的数量"+rsmd.getColumnCount());
    			System.out.println("列的列名"+rsmd.getColumnName(1));
    			System.out.println("列的数量"+rsmd.getColumnCount());
    			
    			rs.close();
    			//关闭声明,释放资源
    			st.close();
    			//关闭数据库连接
    			conn.close();
    			
    		} catch (ClassNotFoundException | SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    }
    

      

  • 相关阅读:
    纯手写F3飞控的直升机固件(2.直升机倾斜盘混控了解)
    STM32输出PWM
    使用多个交叉编译器
    内核编译报错
    mdm9607平台2.2版本 编译指令
    linux 应用编程APIS
    linux 内核API总结
    Do away with the notion of hardsect_size
    大端 小端和网络字节序说明
    TI tlv320aic3104 codec调试之路径控制
  • 原文地址:https://www.cnblogs.com/zhangnaitao/p/5986670.html
Copyright © 2011-2022 走看看