JDBC的查询步骤
1.加载数据库驱动类
1)在工程下新建lib文件夹,将 ojdbc6.jar(jar包在:E:\oracle\product\11.2.0\dbhome_1\jdbc\lib)拷贝至该目录下
2)右键ojdbc6.jar文件,build path --> add too build path
3)将驱动类加载到内存中
Class.forName("oracle.jdbc.driver.OracleDriver");
2.获取数据库连接对象
Connection conn = DriverManager.getConnection(url,user,password);
3.写sql
String sql = "xxxxxx";
4.创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
5.执行查询返回ResultSet结果集对象
ResultSet rs = ps.executeQuery();
6.遍历结果集,获取查询结果
while(rs.next){
rs.getXxx()
}
7.释放资源
rs.close()
ps.close()
conn.close()
JDBC连接字符串
MySQL:
String Driver="com.mysql.jdbc.Driver"; //驱动程序
String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver);
Connection con=DriverManager.getConnection(URL,Username,Password); Oracle:
String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法
String URL="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver) ; //加载数据库驱动
Connection con=DriverManager.getConnection(URL,Username,Password); //常用数据库链接方式 DB2:
String Driver="com.ibm.dbjdbc.app.DBDriver"; //连接具有DB2客户端的Provider实例
//String Driver="com.ibm.dbjdbc.net.DBDriver"; //连接不具有DB2客户端的Provider实例
String URL="jdbc:db2://localhost:5000/db_name"; //db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver) ; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class TestStatement {
public static void main(String[] args) {
try {
//1.加载数据库驱动文件
Class.forName("oracle.jdbc.driver.OracleDriver"); //2。获取数据库连接对象
String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user ="SCOTT";
String password = "tiger"; Connection conn = DriverManager.getConnection(url, user, password); //3.通过connection对象获取一个Statement对象,用于sql语句发送到数据库 testExecuteQuery(conn.createStatement());
System.out.println("--------------------");
testExecuteUpdate(conn.createStatement());
System.out.println("---------------------");
testExcute(conn.createStatement()); //5.遍历结果集 } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("请检查连接驱动类是否正确");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public static void testExecuteUpdate(Statement stmt) throws SQLException { String sql = "insert into emp(empno,ename,sal) values(434,'mm',5000)";
int result = stmt.executeUpdate(sql);
System.out.println(result);
} public static void testExecuteQuery(Statement stmt) throws SQLException {
//4.获取结果集对象
//executeQuery 只能用在select关键字的查询中
String sql = "select e.ename ee,e.empno from emp e";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getString("ee")+"\t"+rs.getInt("empno"));
}
} public static void testExcute(Statement stmt) throws SQLException {
//execute方法可以执行任意的sql语句
String sql = "select * from emp";
boolean flag = stmt.execute(sql);
ResultSet rs = stmt.getResultSet();
System.out.println(flag); while(rs.next()) {
System.out.println(rs.getString("empno"));
} }
}

import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;
public class TestJDBCgetTable {public static void main(String[] args) {Connection conn = null;ResultSet columns = null;try {//加载数据库驱动文件Class.forName("oracle.jdbc.driver.OracleDriver");conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "SCOTT", "tiger");//获取数据库的元信息DatabaseMetaData metaData = conn.getMetaData();//查看数据库中有哪些表/*ResultSet rs = metaData.getTables(conn.getCatalog(), "SCOTT", null, new String[]{"TABLE"});while(rs.next()) {System.out.println(rs.getString(3));}*/columns = metaData.getColumns(conn.getCatalog(), "SCOTT", "EMP", null);while(columns.next()) {System.out.println(columns.getString(4));}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {try {if(columns!=null) {columns.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {if(conn!=null) {conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

JDBC的使用-----Statement的更多相关文章

  1. JDBC中的Statement和PreparedStatement的区别

    JDBC中的Statement和PreparedStatement的区别  

  2. MySQL异常:Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request

    Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or cl ...

  3. jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程

    一. java.sql.*   和  javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...

  4. JDBC batch批处理Statement executeBatch 具体解释

    JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...

  5. JDBC的使用——Statement

    JDBC是Java最基本的数据库操作途径,虽然现在有了更高端的Hibernate和JPA,但是其实它们的底层还是用的这些最基本的JDBC.而且,如果开发一个小型的应用程序,使用Hibernate不免有 ...

  6. JDBC batch批量Statement executeBatch 详细解释

    JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...

  7. JDBC中的Statement和PreparedStatement的差别

    以Oracle为例吧 Statement为一条Sql语句生成运行计划, 假设要运行两条sql语句 select colume from table where colume=1; select col ...

  8. Java -- JDBC 学习--通过Statement进行数据库更新操作

    通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...

  9. [转] JDBC中的Statement和PreparedStatement的区别

    以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...

随机推荐

  1. angular6 引用echart第一次数据不显示解决

    1 使用promise从后台返回数据后,页面还是比数据更快的加载出来,导致echart图页面加载的时候不显示问题 1.1 html <div echarts [options]="do ...

  2. 构建之法 chapter1 心得

    阅读完了<构建之法>第一章后,觉得我们平时使用的软件并不是自己想象中的那样简单,用的时候是觉得很方便,但从来没有考虑过一个软件的背后需要一个团队多少的付出才能换来一个获得用户频频好评的软件 ...

  3. css里px em rem特点(转)

    1.px特点: 1.IE无法调整px作为单位的字体大小: 2.Firefox能够调整px.em和rem. px是像素,是相对长度单位,是相对于显示器屏幕分辨率而言的. 2.em特点: 1.em的值并不 ...

  4. visual studio 2017 创建 android 本地共享库(.so) 并从 C# android 项目中调用

    Developing Xamarin Android Native Applications ★★★★★ ★★★★ ★★★ ★★ ★ February 23, 2015 by Ankit Asthan ...

  5. WinForm关于更新程序的设计思路

    开发WINDOWS应用程序一般都会有一个自动更新的功能,这就需要提供一个单独的更新程序来更新主程序,那么主程序怎么检测是否有更新,以及更新程序怎么去更新主程序呢?下面将分开研究分析. 用VS发布向导发 ...

  6. Javascript 使用postMessage对iframe跨域传值或通信

    实现目标:两个网站页面实现跨域相互通信 当前例子依赖于 jQuery 3.0 父页面代码:www.a.com/a.html <iframe id="myIframe" src ...

  7. C# .NET 按ASCII 从小到大排序

    //C#的SortedDictionary<string,string>集合对key不是按照ascii码排序的因为他没有区分大小写,这就是个差别. 如果参数名中间有大写,小写,数字,Sor ...

  8. ERROR: cannot launch node of type [teleop/teleop_key]: can't locate node [teleop_key] in package [teleop]

    节点由python写成,编译通过,运行时报错如下: ERROR: cannot launch node of type [teleop/teleop_key]: can't locate node [ ...

  9. Linux下MySQL编码的修改

    默认登录mysql之后可以通过SHOW VARIABLES语句查看系统变量及其值. mysql> show variables like '%character%';   说明:以下是在Cent ...

  10. js一些常规操作

    1.判断数组为空 var arrayList = [] 方法1. if (arrayList == (null || "" || undifine)) { 为空操作 } 方法2. ...