第11章 JDBC数据库操作
11.4 JDBC
Java提供了专门用于操作数据库的API,即JDBC (Java DataBase Connection)
JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库(如图11.15).程序经常使用JDBC进行如下的操作 :
- (1)与一个数据库建立连接。
- (2)向数据库发送SQL语句。
- (3)处理数据库返回的结果。
11.5连接MySQL数据库
Java运行环境将JDBC-数据库驱动转换为DBMS(数据库管理系统)所使用的专用协议来实现和特定的DBMS交互信息。
加载JDBC-MySQL数据库驱动
应用程序负责加载的JDBC-MySQL数据库驱动,代码如下:
try{ Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
MySQL数据库驱动被封装在Driver类中,该类的的包名是com.mysql.jdbc,该类不是Java运行环境类库中的类,所以需要放置在jre的扩展中
11.6 查 询 操 作
1.得到SQL查询语句对象
try{ Statement sql=con.createStatement();}
catch(SQLException e ){}
ResultSet rs = sql.executeQuery("SELECT * FROM students");
ResultSet rs = sql.executeQuery("SELECT name,height FROM students")
3.关闭连接
如果在代码
ResultSet rs = sql.executeQuery("SELECT * FROM students");
之后立刻关闭连接con.close();程序将无法获取rs中的数据
11.6.1 顺序查询
所谓顺序查询,是指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false。
11.7 更新、添加与删除操作
1.更新
update 表 set 字段 = 新值 where <条件子句>
2.添加
insert into 表(字段列表) values (对应的具体的记录)
或
insert into 表 values (对应的具体的记录)
3.删除
delete from 表名 where <条件子句>
11.8.2 使用通配符
String str = "select * from mess where height < ? and name= ? "
PreparedStatement sql = con.prepareStatement(str);
在sql对象执行之前,必须调用相应的方法设置通配符?代表的具体值,如:
sql.setFloat(1,1.76f);
sql.setString(2, "武泽");
预处理SQL语句sql中第1个通配符?代表的值是1.76,第2个通配符?代表的值是'武泽'。通配符按着它们在预处理SQL语句中从左到右依次出现的顺序分别被称为第1个、第2个、……、第m个通配符。
11.11 连接SQL Server数据库
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){
}
try{
String uri=
"jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse";
String user="sa";
String password="dog123456";
con=DriverManager.getConnection(uri,user,password);
}
catch(SQLException e){
System.out.println(e);
}
总结
- JDBC技术在数据库开发中占有很重要的地位,JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库。
- 当查询ResultSet对象中的数据时,不可以关闭和数据库的连接。
- 使用PreparedStatement对象可以提高操作数据库的效率。