JAVA编程之JDBC

JAVA数据类型

基本数据类型:bytes double int long float double boolean char
bytes 占用8为内存,占用一个字节。
bytes : -128 - 127
short : 2的15次方至负的2的15次方(本应该是16次方,由于符号占用一位)
int : 32位
long : 64
float : 32(小数)
double : 64 (小数)
boolean : true 或者false
char: 16位 unicode字符



引用数据类型:数组 接口 类


JDBC学习
JDBC是 (JAVA DATA BASE CONNECTIVITY JAVA数据库连接的简称)

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,
有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,
它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,
处处运行”的优势。
 

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

public class JdbcDemo {
  public static void main(String [] args)
  {
    //1.在buildpath中追加驱动jar(各数据库厂商编写的相应jdbc的jar包)
    //2.class.forname();
    //在内存当中,通过反射机制建立一个对象,后续的程序会寻找并使用这个对象
    //3.建立连接 getconnection包含三个参数 dburl,dbname,dbpass
    //4.编写一条sql语句
    //5.JDBC将sql语句分为了两类,一类是查询,另外一类是DML.DML均使用executeUpdate语句,对应的返回是影响的行数
    //查询使用executeQuery语句,对应的返回是查询的结果,使用Resultset来接受
    //6.rs.next是将游标移动到下一条,若无下一条,则返回false.否则返回true
    //preparedstatement是预编译方式,对应的JDBC厂商会对自己的数据库产品进行sql语句的优化.
    //据测试,Oracle在执行预编译prepareStatement方法时,会先把语句进行绑定变量代替原来的?
    
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl11g","admin","admin");
      Statement stm = conn.createStatement();
      int del_i = 2;
      //int i = stm.executeUpdate("insert into t values(1)");
      int j = stm.executeUpdate("delete t1 where id = "+del_i);//这个方式会直接把sql传递给数据库,并不会使用绑定变量方式
      //int k = stm.executeUpdate("update t set i = 2 where i = 1");
      //System.out.println("插入的记录条数为: "+i);
      System.out.println("删除的记录条数为: "+j);
      //System.out.println("更新的记录条数为: "+k);
      ResultSet rs = stm.executeQuery("select * from t1");
      while (rs.next()) {
        System.out.println("T1表输出的结果为:" + rs.getInt(1) + " "
            + rs.getString(2));
      }
      String sql = "update t1 set id =?,name=? where id = 1";// update t1
                                  // set id
                                  // =:1
                                  // ,name=:2
      PreparedStatement preStmt = conn.prepareStatement(sql);
      preStmt.setInt(1, 99);
			preStmt.setString(2, "Good");
			int i = preStmt.executeUpdate();
			System.out.println("预编译方式:执行update的影响行数为:" + i);

			// 尝试预编译查询语句
			String sql1 = "select * from t1 where id <= ?";// select * from t1
															// where id <= :1
			preStmt = conn.prepareStatement(sql1);
			preStmt.setInt(1, 2);
			ResultSet rs1 = preStmt.executeQuery();//
			while (rs1.next()) {
				System.out.println("预编译查询结果为:" + rs1.getInt(1) + " "
						+ rs1.getString(2));
			}			
		//
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

你可能感兴趣的:(java编程)