JDBC :JAVA data Base Connection
JDBC 是用于运行sql语句并从数据库中获取新的javaapi
JDBC是用来通过网络来操作数据库的,作用非常重要,jdbc技术也是java核心技术之一.
通过jdbc操作数据库的步骤:
- 注册驱动
- 建立连接(connection)
- 创建运行的sql语句(Statement)
- 运行语句
- 处理运行结果(ResultSet)
- 释放资源
使用jdbc第一步:载入驱动
注册驱动有三种方式
- Class.forName(“com.mysql.jdbc.Drier”); 推荐这种方式,不会对详细的驱动类产生依赖.
- DriverManager.registerDriver(com.mysql.jdbc.Driver);会对详细的驱动类产生依赖.
- System.setProperty(“jdbc.drivers”,“driver1:driver2”);尽管不会对详细的驱动类产生依赖;但注册不太方便,所以非常少使用.
使用jdbc第二步:建立连接
通过connection建立连接,connection是一个接口类,其功能是与数据库进行连接(会话);
建立Connection 接口对象:
Connection conn=DrriverMananger.getConnection(url,user,password);
其中url的格式要求为:
JDBC:子协议:子名称//主机名:port/数据名?属性名=属性值&…
如:"jdbc:mysql://localhost:3306/test“
user即为登录数据库的username,如root
password即为登录数据库的密码,为空就填””
使用jdbc第三步:创建运行对象
运行对象statement负责运行sql语句,由connection对象产生
Statement st=connection.createStatement();
Statement接口类还派生出两个接口类PrepardStatement和CallableStatement,这两个接口类对象为我们提供了更加强大的数据访问功能.
PreparedStatement能够对sql语句进行预编译,这样防止了sql注入提高了安全性.
PreparedStatement ps=connection.prepareStatement( "update user set id=? where username=?”); ————sql语句中庸 ? 作为通配符,变量值通过参数设入:ps.setObject(1, object);
而且预编译结果能够存储在PreparedStatement对象中。当多次运行SQL语句时能够提高效率。
作为Statement的子类,PreparedStatement继承了Statement的全部函数。
CallableStatement接口
CallableStatement类继承了PreparedStatement类,他主要用于运行SQL存储过程。
在JDBC中运行SQL存储过程须要转义。
JDBC API提供了一个SQL存储过程的转义语法:
{call[,, …]}
procedure-name:是所要运行的SQL存储过程的名字
[,, …]:是相相应的SQL存储过程所须要的參数使用JDBC第四步:运行SQL语句
运行对象Statement 或 PreparedStatement 提供两个经常使用的方法来运行SQL语句。
executeQuery(Stringsql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。
如:ResultSet rs =st.executeQuery(sql);
executeUpdate(Stringsql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。
如:int flag = st.executeUpdate(sql);
使用JDBC第五步:处理运行结果
ResultSet对象
ResultSet对象负责保存Statement运行后所产生的查询结果。
结果集ResultSet是通过游标来操作的。
游标就是一个可控制的、能够指向随意一条记录的指针。
有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。
另外,借助ResultSetMetaData ,可以将数据表的结构信息都查出来。
ResultSetMetaData rsmd= resultSet.getMetaData();
使用JDBC 第六步——释放资源
见随笔:java mysql数据库链接与资源关闭
数据库资源不关闭,其占用的内存不会被释放,徒耗资源,影响系统。
文章改动自: 学习Java JDBC https://www.cnblogs.com/yfceshi/p/7095607.html
原文链接:https://www.cnblogs.com/lightandtruth/p/9473862.html