jdbcjavaee项目连接数据库.ppt
文本预览下载声明
第2章 JDBC 主要内容 JDBC简介 JDBC操作 使用PreparedStatement 事务 使用连接池访问数据库 JDBC 简介 JDBC中主要接口 java.sql.DriverManager:处理驱动程序的调入和管理 java.sql.Connection:负责连接数据库 java.sql.Statement:负责执行数据库 SQL 语句 java.sql.ResultSet:负责存放查询结果 JDBC 简介 针对不同类型的数据库,JDBC 机制中提供了驱动程序的的概念。对于不同的数据库,程序只需要使用不同的驱动厂商驱动连接数据库 使用厂商驱动进行数据库连接 常见数据库的驱动程序名称和 url 如下 MS SQL Server:驱动程序为:com.microsoft.jdbc.sqlserver.SQLServerDriver, url 为:jdbc:microsoft:sqlserver://[IP]:1433;DatabaseName=[DBName] 使用厂商驱动进行数据库连接 Oracle :驱 动 程 序 为 : oracle.jdbc.driver.OracleDriver , url 为 : jdbc:oracle:thin:@[ip]:1521:[sid] 使用厂商驱动进行数据库连接 MySQL : 驱 动 程 序 为 : “ com.mysql.jdbc.Driver , url 为 : jdbc:mysql://localhost:3306/[DBName] 服务器中数据库驱动程序部署 mysql的驱动程序 mysql-connector-java-5.*-bin.jar存放位置: tomcat %TOMCAT_HOME%\lib 或%TOMCAT_HOME%\common\lib目录 jboss %JBOSS_HOME%\server\default\lib目录 weblogic \bea\user_projects\domains\base_domain\lib目录 使用 PreparedStatement 引出 以添加数据为例,在很多情况下,具体需要添加的值,是由客户自己输入的,因此,应该是一个个变量。该情况下,SQL 语句的写法就比较麻烦 ,而且依赖了变量,比较容易出错 PreparedStatement 解决了这个问题 带参数的操作 … int id=Integer.parseInt(request.getParameter(id)); String name=request.getParameter(name); String address=request.getParameter(address); String year=request.getParameter(year); String sql=insert into teacher values(+id+,+name+,+address+,+year+); int rowCount=stmt.executeUpdate(sql); 使用 PreparedStatement PreparedStatement 是 Statement 的子接口,功能与 Statement 类似 它在 sql 语句中使用了?代替了需要插入的参数 用 PreperedStatement 的 setString(n,参数)方法可以将第 n 个?用传进的参数代替。这样做增加了程序的可维护性,也增加了程序的安全性 事务 在银行转账时,要对数据库进行两个操作,即将一个账户的钱减少,将另一个账户的钱增多。但是由于操作的先后顺序,如果在两个操作之间发生故障,则会导致数据不一致。因此,需要设计一个事务,在两条语句都被执行成功后,数据修改才被真正提交(Commit)放入数据库,否则数据操作回滚(Rollback) 事务 在默认情况下,executeUpdate 函数会在数据库中提交改变的结果,此时,可以用 Connection 来定义该函数是否自动提交改变结果,并进行事务的提交或者回滚 Connection 中可以设置 executeUpdate 不要自动提交 JDBC事务管理 Connection类的3个控制事务的方法: setAutoCommit(boolean autoCommit): commit(): rollback(): JDBC API中默认:每条更新语句是一项事务,是自动提交事务 手工管理事务 使用连接池访问数据库 在
显示全部