java数据库编程
• DriverManager.getConnection(url) • DriverManager.getConnection(url,user,
password) • 其中第二种方式需要输入用户名和密码信息进
行身份认证。
连接数据库示例
JDBC对数据库执行SQL
• java.sql.Statement 对象代表一条发送 到数据库执行的SQL语句。
PreparedStatement
• PreparedStatement 实例包含已编译的 SQL 语句,这也是将其命名冠以 “Prepared”的原因。包含于 PreparedStatement 对象中的 SQL 语 句可具有一个或多个 IN 参数。IN 参数 的值在 SQL 语句创建时未被指定。相 反的,该语句为每个 IN 参数保留一个 问号(“?”)作为占位符。每个问号 的值必须在该语句执行之前通过适当的 setXXX() 方法来提供。
存储过程的优点
• 存储过程只在创造时进行编译,以后每次执行 存储过程都不需再重新编译,而一般SQL语句 每执行一次就编译一次,所以使用存储过程可 提高数据库执行速度。
• 当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete时),可将此 复杂操作用存储过程封装起来与数据库提供的 事务处理结合一起使用。
• 存储过程可以重复使用,可减少数据库开发人 员的工作量
• 安全性高,可设定只有某此用户才具有对指定 存储过程的使用权
数据库连接的方式
• 第一种: Class.forName("数据库驱动类的名字");// 注册 Connection con = DriverManager.getConnection(url,userName,password); 编码本身对底层的数据源很依赖,可移植性差
• 第二种: Context ctx = new InitialContext(); DataSource ds =
(DataSource)ctx.lookup("jdbc/tarena"); Connection con = ds.getConnection(); DataSource接口主要方法:getConnection()返回一个数
• PreparedStatement 接口也有自己的 executeQuery、executeUpdate 和 execute 方法。Statement 对象本身不包含 SQL 语句,因而必须给 Statement.execute 方法提供 SQL 语句作为参数。 PreparedStatement 对象并不将 SQL 语句
作为参数提供给这些方法,因为它们已经包含
预编译 SQL 语句。
CallableStatement
• 调用存储过程
• 将常用的或很复杂的工作,预先用SQL语句写 好并用一个指定的名称存储起来, 那么以后要 叫数据库提供与已定义好的存储过程的功能相 同的服务时,只需调用execute,即可自动完成 命令。
• executeQuery():(用于产生单个结果集的sql, 如select语句)
• executeUpdate:(用于执行insert、delete、 update、create table、drop table等)
• execute():用于执行返回多个结果集、多个 更新计数或二者组合的语句,多数程序员不会 需要该高级功能。
• MySQL数据库:jdbc:mysql://机器名/ 数据库名
• Oracle数据库:jdbc:oracle:thin@机器 名:端口名:数据库名
• jdbc:sqlserver://localhost:1433;data baseName=Graduate"
• 给定具体的JDBC URL,获取数据库连接的方 法是在DriverManager对象上调用 getConnection()。这种方法有两种形式:
• JDBC(Java Data Base Connectivity,java数 据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问, 它由一组用Java语言编写的类和接口组成。
• JDBC提供了一种基准,据此可以构建更高级 的工具和接口,使数据库开发人员能够编写数 据库应用程序,同时,JDBC也是个商标名。
• 有三种 Statement 对象:
–Hale Waihona Puke Statement 对象用于执行不带参数的简单 SQL 语句;
– PreparedStatement 对象用于执行带或不 带参数的预编译 SQL 语句
– CallableStatement 对象用于执行对数据库 存储过程的调用。
Statement
Statement对象提供了三种执行SQL语句的方 法:
创建数据库连接,分为以下几步: • 首先注册数据库驱动程序 • 然后根据具体的JDBC URL地址,调用
DriverManager对象的getConnection()来获 取一个代表数据库连接的java.sql.connectuion 对象。
• JDBC URL 的格式如下:
• jdbc:子协议:数据库定位器
据库连接。
DataSource实现类主要方法: setURL(String url); setUser(String user); setPassword(String password); 可移植性好,缺点:会增加应用开发的复杂性,因为使用 它的时候要提供以各应用服务器的支持。