学习切莫心急,时间才能出真知,注重自己的效率。左神说:练习就是把需要反应一下才能搞明白的问题变成本能。本以为数据库学的很好了,可是答起卷来还是一塌糊涂。
开始复习jdbc:
Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。
JDBC结构图,它显示了驱动程序管理器方面的JDBC驱动程序和Java应用程序的位置。
JDBC API提供了以下接口和类:
DriverManager: 这个类管理数据库驱动程序的列表。确定内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。
Driver: 此接口处理与数据库服务器通信。很少直接直接使用驱动程序(Driver)对象,一般使用DriverManager中的对象,它用于管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息
Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过此唯一的连接对象。
Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。
ResultSet: 这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,可以通过移动它来检索下一个数据。
SQLException: 这个类用于处理发生在数据库应用程序中的任何错误。
总结的不错
主要有以下几步:
1装载驱动程序——Class.forName();将某一数据库驱动程序的类文件加载到内存中的过程com.mysql.jdbc.Driver(需要从网上下载并导入jar包)
2建立连接:
Connection con =DriverManager.getConnection(数据库URL,用户名,密码);
3预编译:PreparedStatement接口扩展了Statement接口,它添加了比Statement对象更好一些优点的功能。
此语句可以动态地提供/接受参数。向数据库发送命令
PreparedStatement pstm=conn.preparedStatements(sql);
a) String sql=”select * from emp”;(无动态值);con.prepareStatement(sql);
b) String sql=”insert into empvalues(?,?,?);con. prepareStatement(sql);
pstmt.setString(1,student.getName());
pstmt.setString(2, student.getSex());
pstmt.setString(3, student.getAge());
c) String sql=insert into emp values(’“+id+”‘,单引号双引号 加号值);
con.prepareStatement(sql);
4 执行编译结果,返回结果集:
a) 获得结果集,需要执行:rs=pstmt. psta.executeQuery();
b) 返回受影响行数: Int a= psta.executeUpdate();
c) 返回受影响行数: Int a= psta.executeUpdate(sql);
(与上面对应)
SQL语句执行后从数据库查询读取数据,返回的数据放在结果集中。
ResultSet接口的方法可以分为三类:
浏览方法:用于移动光标。
获取方法:用于查看光标指向的当前行的列中的数据。
更新方法:用于更新当前行的列中的数据。 然后在基础数据库中更新数据。
ResultSet接口包含数十种获取当前行数据的方法。
Resultset.getint(列名或列的索引(从第一行开始是1))
ResultSet也提供了更新结果集的方法,详情查看文档。
5关闭连接rs.close ps.close conn.close
一般需要取消数据库自动提交的操作:setAutoCommit(false);
在所有sql语句全部执行后,在 commit orrollback;以上三个属于Conn接口;