JDBC总结
一、使用连接数据库:
(1)连接数据库需要的信息
1、驱动信息 driver
确定你要连接哪一种数据库
例:在oracle.jar中:
Driver----> oracle.jdbc.driver.OracleDriver
java应用层面的驱动:
其实本身就是已经实现的java类,直接使用即可
2、url网址信息
确定你要连接当前种类的哪一个数据库
URL----->jdbc:oracle:thin:@localhost:1521:XE
localhost:可以换成其他的主机地址
1521:代表端口号
XE:数据库的名字
thin:数据库的连接方式
for thin client的意思
这种驱动一般用在运行在WEB浏览器中的JAVA程序。
它不是通过OCI 而是通过Java sockets进行通信,
是纯java实现的驱动,因此不需要在
使用JDBC Thin的客户端机器上安装orcale客户端软件,
所以有很好的移植性,通常用在web开发中
3、user 用户名
4、password 密码
(2)连接数据库的6大步骤:
1. Registering a driver注册驱动(有三种常用方式)
第一种:反射找到驱动类
Class.forName(driver);
第二种:DriverManager的注册方法
Driver driver=new OracleDriver();
DriverManager.registerDriver(driver);
第三种:添加运行时参数
-Djdbc.drivers=oracle.jdbc.driver.OracleDriver
2. Establishing a connection to thedatabase 获取一个数据库连接
3. Creating a statement创建Statement对象
4. Executing a SQL执行Sql语句
5. Processing the results处理结果集
如果有的话对结果集的处理方式以及返回值的处理
execute,excuteQuery,excuteUpdate的区别
6. Closing down JDBC objects关闭数据库连接
重点:
Statement与PreparedStatement区别
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
二、代码
public class PreparedStatementTest {
private static String driver="oracle.jdbc.driver.OracleDriver";
private static String url="jdbc:oracle:thin:@localhost:1521:XE";
private static String user="briup";
private static String password="briup";
public static void insertTest(){
Connection conn=null;
PreparedStatement pst=null;
try {
Class.forName(driver);
conn=
DriverManager.getConnection(url, user, password);
String sql="insert into t_user values(?,?,?)";
pst = conn.prepareStatement(sql);
pst.setInt(1,28);
pst.setString(2, "tom");
pst.setString(3, "1340");
//pst.execute()
int num = pst.executeUpdate();//
System.out.println(num);
//pst.executeQuery()
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(pst!=null)pst.close();
if(conn!=null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void selectTest(){
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null; //返回集
try {
Class.forName(driver);
conn=
DriverManager.getConnection(url, user, password);
String sql="select id,name,salary from t_user where id=?";
pst=conn.prepareStatement(sql);
pst.setInt(1, 1);
//boolean execute = pst.execute();
//System.out.println(execute);
rs = pst.executeQuery();//
while (rs.next()) {
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("name"));
System.out.println(rs.getInt("salary"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(pst!=null)pst.close();
if(conn!=null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
//insertTest();
selectTest();
}
}
这是我根据上课的内容总结。