100%
阅读:1475回复:0
java私塾笔记整理——JDBC
java私塾笔记整理——JDBC
一.JDBC是什么? Java DataBase Connection(类似于IO). 二.JDBC怎样实现传输? JDBC利用Driver来连接不同的数据库。如Oracle, SQL Server, MySql , DB2. Driver(驱动):本质上是一个程序 1.它是JDBC技术的实现。 2.总的来说与数据库相关(因为java部分是固定的,而数据库有很多种需要不同的驱动去适应它) 3.Driver类型: A:JDBC-ODBC桥 B:纯本地实现 C:部分JAVA实现 D:纯JAVA实现 三.JDBC可以用一套固定的接口去跟不同的数据库进行交互 需要掌握如下接口:Driver, Connection, Statement, PreparedStatement, ResultSet。 实现:跟IO类似,一边Out,一边In。 不同的是输出的不是流,而是SQL语句。 思路: JAVA——>数据库 1.建立跟数据库的连接 1.1装在驱动 class.forName(“驱动名称”) 1.2打开连接 Connection conn = DriverManeger.getConnection(URL,用户名,密码); 2.执行SQl语句 2.1得到执行SQL语句的接口 Statement stmt = conn.createStatement(); 或 PreparedStatement pstmt = conn.PreparedStatement(String sql); 2.2执行SQL语句 stmt.executeUpdate(sql); 或 pstmt.setString(1,值); pstmt.executeUpdate(); 2.3 关闭连接 conn.close(); stmt.close(); pstmt.close(); 数据库——>JAVA 1.建立跟数据库的连接 1.1装在驱动 class.forName(“驱动名称”) 1.2打开连接 Connection conn = DriverManeger.getConnection(URL,用户名,密码); 2.执行SQL语句 2.1得到执行SQL语句的接口 Statement stmt = conn.createStatement(); 或 PreparedStatement pstmt = conn.PreparedStatement(String sql); 2.2执行取值,获得从数据库返回的结果集 3.从ResultSet中获取数据(rs相当于游标) while(rs.next()) a.按名称取值 rs.getString(“字段名”); b.按索引取值 rs.getString(索引下标); 两种方法都是对照ResultSet的。 4.关闭连接 conn.close(); rs.close(); stmt.close(); pstmt.close(); *用preparedStatment是指预编译的SQL语句,是静态的。 String sql = “…………(?,?,?,?)” 将字段名用?代替 pstmt.setString(索引,值); pstmt.setInt(索引,值); pstmt.executeUpdate(); 而Statement是动态的。 四.事务: 保证数据库正确 A.原子性:事务的内部操作为一个整体,要么都成功,要么都失败。 B.一致性:数据操作前后要满足相同的规则。 C.隔离性:事物内部数据对外的可见性和可操作性。 D.稳定性:无论发生任何事情,事务都要保证数据能正确保存到数据库中。 默认情况下,JDBC将一条数据库语句是为一个完整的事务。 可以关掉默认事务管理: conn.setAutoCommit(false); 在执行完事务后应提交事务:conn.commit(); conn.rollback(); 需要时可以取消事务: 五.批量操作 stmt.addBatch(sql); 将多个sql打包 stmt.executeBatch(); |
|