您的位置:首页 > 其它

JDBC初步

2011-03-08 16:29 274 查看
简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。做这些事主要有以下几步:

1. Load the Driver(装载驱动程序)

Class.forName()或者Class.forName().newInstance()或者new
DriverName();
实例化时自动向DriverManager注册,不需要显式调用DriverManager.registerDriver方法
2. Connect to the Database(用适当的驱动程序类与 DBMS 建立一个连接)
DriverManager.getConnection()
3. Execute the SQL
Connection.CreateStatement()
Statement.executeQuery()
Statement.executeUpdate()
4. Retrieve the resule data
循环取得结果集while(result.next())
5. Show the resule data
将数据库中的各种类型转换为Java中的类型方法
6. Close
Close the resultset
close the statement close the
connection
但是连接各种数据库在建立连接时略有不同,以下以sql和oracle为例:
//与mysql建立连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/cdata?" + "user=root&password=chenxx");
//与oracle建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:luecc", "scott", "tiger");


灵活制定SQL语句中的变量:PreparedStatement
PreparedStatement用来代替java.sql.statement,因为java.sql.statement要求开发者花费大量的精力来解决一些很小的问题,比如输入适当格式的日期和时间戳:2002-02-05 20:56 或者 02/05/02 8:56 pm;使用preparedstatement的另一个优点是字符串不是动态创建的。下面是一个动态创建字符串的例子:stringsql = "select * from people p where p.i = "+id.
PreparedStatement的具体用法如下:
//sql字符串中包含问号(?),这些问号标明变量的位置,然后提供变量的值,最后执行语句
PreparedStatement pstmt = conn.prepareStatement("insert into dept values (?,?,?)");
pstmt.setInt(1,deptno);
pstmt.setString(2, dname);
pstmt.setString(3, loc);
pstmt.executeUpdate();

在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement,基于以下的原因:
其一,代码的可读性和可维护性.
虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次。
其二,PreparedStatement尽最大可能提高性能。
最后,最重要的一点是极大地提高了安全性。

部分内容参考:http://zhaonjtu.javaeye.com/blog/139276
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: