Jdbc
2016-07-17 18:10
162 查看
一、JDBC概述
1、Java Data Base Connectivity(java数据库连接)
2、组成包:java.sql.;javax.sql.;这两个包都包含在了JDK中。
3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现
二、JDBC的编码步骤
1、把数据库的驱动加入到classpath中 (方法是拷贝mysql-connector-java-5.0.8-bin.jar 到工程下然后buildpath)
2、开发步骤:
1、注册驱动
2、获取与数据库的链接 .properties
3、得到代表SQL语句的对象
4、执行语句
5、如果执行的是查询语句,就会有结果集,处理
6、释放占用的资源
JDBC的增删改查:
创建sql语句示例:
String sql = “insert into stu(id,name,sex) values(12,’东东’,’男’)”;
1、Statement 命令对象 Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:
就是执行sql语句的;
executeQuery(String sql) :用于向数据发送查询语句。
executeUpdate(String sql):用于向数据库发送insert、update或delete语句
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
2、ResultSet
Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
ResultSet还提供了对结果集进行滚动的方法:
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。
结果集 ResultSet 用while循环的原因是 游标在第一条记录的前面。//Before start of result set
url的写法:
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
jdbc:mysql:[]//localhost:3306/test ?参数名=参数值
协议 子协议 主机端口号 数据库
常用数据库URL地址的写法:
Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
MySql—jdbc:mysql://localhost:3306/sid
Mysql的url地址的简写形式: jdbc:mysql:///sid 这个省略的只能是本机的 localhost:3306
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
1、Java Data Base Connectivity(java数据库连接)
2、组成包:java.sql.;javax.sql.;这两个包都包含在了JDK中。
3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现
二、JDBC的编码步骤
1、把数据库的驱动加入到classpath中 (方法是拷贝mysql-connector-java-5.0.8-bin.jar 到工程下然后buildpath)
2、开发步骤:
1、注册驱动
2、获取与数据库的链接 .properties
3、得到代表SQL语句的对象
4、执行语句
5、如果执行的是查询语句,就会有结果集,处理
6、释放占用的资源
package com.zh.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcDemo1 { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); //注册驱动 驱动包名 com.mysql.jdbc Driver 类 //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root"); //注意这种办法url后面添加参数注意不要随意添加空格 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","root"); // url中mysql的位置可以是sqlservice 根据是数据库的类型定 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from stu"); // 执行sql语句 while(rs.next()) { System.out.println(rs.getInt("id")+":"+rs.getString("name")+":"+ rs.getString("address")); } //关闭链接,关闭命令对象,关闭结果集。 rs.close(); stmt.close(); conn.close(); } }
JDBC的增删改查:
创建sql语句示例:
String sql = “insert into stu(id,name,sex) values(12,’东东’,’男’)”;
1、Statement 命令对象 Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:
就是执行sql语句的;
executeQuery(String sql) :用于向数据发送查询语句。
executeUpdate(String sql):用于向数据库发送insert、update或delete语句
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
2、ResultSet
Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
ResultSet还提供了对结果集进行滚动的方法:
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。
package com.zh.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcDemo4 { public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); // 注册驱动 包名 com.mysql.jdbc Driver // 类 Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mydb", "root", "root"); //创建的是连接对象 Statement stmt = conn.createStatement(); // 创建执行sql语句的命令对象 Statement // 创建一个sql语句 // // String sql // ="insert into stu(id,name,age,address,sex) values(12,'东方不败',20,'湖南','男')";// 添加 // int n = stmt.executeUpdate(sql); //返回一整型 就是执行结果影响的记录数。 // String sql = "update stu set name='张刘子'where id=12"; // 改 修改 update tablename set 字段名where String sql = "delete from stu where id =12"; // 删除 delete from tablename where 字段名 int n = stmt.executeUpdate(sql); System.out.println(n); // 需要注意的是这如果是增加的sql语句结果第一次是1,对于第二次就会因为主键的原因执行会抛出 异常报出错误。 // 关闭链接,关闭命令对象, stmt.close(); conn.close(); } }
结果集 ResultSet 用while循环的原因是 游标在第一条记录的前面。//Before start of result set
url的写法:
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
jdbc:mysql:[]//localhost:3306/test ?参数名=参数值
协议 子协议 主机端口号 数据库
常用数据库URL地址的写法:
Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
MySql—jdbc:mysql://localhost:3306/sid
Mysql的url地址的简写形式: jdbc:mysql:///sid 这个省略的只能是本机的 localhost:3306
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
常用数据类型转换: sql类型 Jdbc对应方法 返回类型 Text(clob) Blob getClob getBlob() Clob Blob DATE getDate() java.sql.Date TIMESTAMP getTimestamp() java.sql.Timestamp CHAR,VARCHAR,LONGVARCHAR getString() String BIGINT getLong() Long SMALLINT getShort() Short Int getInt() Int
相关文章推荐
- Spring的JdbcTemplate
- CenterOS6.5(Minimal) 搭建nginx
- Linux 系统结构详解
- 【从0到1】经典语录
- HTML的dl、dt、dd标记制作表格对决Table制作表
- Handler的两种用法
- 管道
- JSP学习笔记之二
- 修改.lnk文件的后缀
- 使用sklearn进行集成学习——理论
- 自动发送邮件工具-Auto Send Mail Tool (ASM)
- 自动发送邮件工具-Auto Send Mail Tool (ASM)
- 自动发送邮件工具-Auto Send Mail Tool (ASM)
- 自动发送邮件工具-Auto Send Mail Tool (ASM)
- 自动发送邮件工具-Auto Send Mail Tool (ASM)
- 自动发送邮件工具-Auto Send Mail Tool (ASM)
- 二分法新姿势
- HTML小结
- Cpp环境【Usaco 3.2.6】【Vijos1251】Павлов的香甜黄油
- 字符串的查找(1)