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();
}
}
}