JDBC
JDBC简介:
- JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,她由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC原理:
- JDBC是以前SUN公司定义的一套访问数据库的接口(没有具体实现),是一套标准,具体的实现是由各大数据库厂家去实现,每个数据库厂家都有自己的JDBC实现,也就是JDBC驱动实现类,Java应用程序连接指定数据库,需要使用厂家提供的JDBC驱动才能连接。(这里其实就是java多态的一种体现,一个及接口可以有很多具体的实现)
JDBC连接数据库的四个步骤:
- 加载数据库驱动:Class.forName("com.mysql.jdbc.Driver")
- 连接数据库:Connectiong conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名","用户名root","密码123456")
- 使用语言操作数据库:
- 关闭数据库连接,释放资源:conn.close()
在项目中配置数据库驱动:
- 右击项目->Build Path->Configure Build path->Add Exteranl JARs
加载数据库驱动:
- Mysql驱动名(com.mysql.jdbc.Driver);
- 加载方式(Class.forName(驱动名))
连接及关闭数据库:
- DiverManager驱动管理类,主要负责获取一个数据库的连接;static Connection getConnection(String url,String user,String password) 试图建立到给定数据库URL的连接;
- MySQL数据库的连接地址格式;jdbc:mysql://IP地址:端口号/数据库名称;jdbc协议:JDBC URL中的协议总是jdbc;子协议:驱动程序名或数据库简介机制(这种机制可由一个或多个驱动程序支持)的名称,如mysql;子名称:一种表示数据库的方法,必须遵循“/主机名:端口/子协议”的标准URL命名约定,如//localhost:3306/db_book;
- Connection接口与特定数据库的连接(会话):void close() 立即释放此Connection对象的数据库和JDBC资源,而不是等待他们被自动释放
Statement接口引入:
- 作用:用于执行静态SQL语句并返回它所生产结果的对象; int executeUpdate(String sql)执行给定SQL语句,该语句可能为INSERT、UPDATE或DELETE语句,或者不返回任何内容的SQL语句(如SQL DDL语句)
使用Statement接口实现添加数据操作:
- String sql = "insert into 数据库 values()";Statement stmt = con.createStatement();//创建Statement stmt.executeUpdate(sql);
PreparedStatement接口引入:
- PreparedStatement是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,PreparedStatement在操作时,是先在数据库表中准备好了一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后再进行设置
使用PreparedStatement接口实现添加数据操作:
- String sql = "insert into 数据库 values(?,?)";PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setString(1,book.getBookName());
ResultSet结果集的引入:
- 当我们查询数据库时,返回的是一个二维的结果集,我们这时候需要使用ResultSet来遍历结果集,获取每一行的数据。
使用ResultSet遍历查询结果:
- String sql = "select * from 数据库"; PreparedStatement pstmt = con.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while(rs.next()){ int id = rs.getInt(1); String name = rs.getString(2); }
- next()将光标从当前位置向前移一行;返回Boolean值
- getString(int columnIndex)以Java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值;
处理大数据对象:
- CLOB数据(处理文本):Clob c = rs.getClob("content"); String content = c.getSubString(1,(int)c.length());
- BLOG数据(处理二进制):
使用CallableStatement接口调用存储过程:
- CallableStatement主要是调用数据库中的存储过程,CallableStatement也是PreparedStatement接口的子接口。在使用CallableStatement时可以接收存储过程的返回值
- void registerOutParameter(int parameterIndex,int sqlType) 按顺序位置parameterIndex将OUT参数注册为JDBC类型sqlType
posted on 2017-12-27 11:44 fighting_ty 阅读(106) 评论(0) 收藏 举报
浙公网安备 33010602011771号