JDBC的使用-----Statement
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的更多相关文章
- JDBC中的Statement和PreparedStatement的区别
JDBC中的Statement和PreparedStatement的区别
- 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 ...
- jdbc中的Statement对象和Preparedstatement对象的区别,以及通过jdbc操作调用存储过程
一. java.sql.* 和 javax.sql.*的包的类结构 |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, p ...
- JDBC batch批处理Statement executeBatch 具体解释
JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...
- JDBC的使用——Statement
JDBC是Java最基本的数据库操作途径,虽然现在有了更高端的Hibernate和JPA,但是其实它们的底层还是用的这些最基本的JDBC.而且,如果开发一个小型的应用程序,使用Hibernate不免有 ...
- JDBC batch批量Statement executeBatch 详细解释
JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下能够大幅度提升系统的性能.我曾经接触的一个项目,在没有採用batch处理时,删除5万条数据大概要半个小时左右,后来对系 ...
- JDBC中的Statement和PreparedStatement的差别
以Oracle为例吧 Statement为一条Sql语句生成运行计划, 假设要运行两条sql语句 select colume from table where colume=1; select col ...
- Java -- JDBC 学习--通过Statement进行数据库更新操作
通过 JDBC 向指定的数据表中插入一条记录. 1. Statement: 用于执行 SQL 语句的对象 1). 通过 Connection 的 createStatement() 方法来获取 2). ...
- [转] JDBC中的Statement和PreparedStatement的区别
以Oracle为例吧 Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume ...
随机推荐
- maven 使用axis2 client 需要导入的依赖
<dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2</artif ...
- @EnableScheduling注解
@EnableScheduling 开启对定时任务的支持 其中Scheduled注解中有以下几个参数: 1.cron是设置定时执行的表达式,如 0 0/5 * * * ?每隔五分钟执行一次 ...
- nodejs-websocket 的简单用法和安装
网上很多的websocket我都看不懂,看了个视频才慢慢懂了点 视频链接:https://blog.csdn.net/QQ408896436/article/details/81606553 以下都是 ...
- SDL播放YUV——循环
#include "SDL.h" #include "as_lesson_log.h" #define PATH_YUV420 "/sdcard/ou ...
- LibreOffice字体问题解决;从window复制到Ubuntu
拷贝或下载windows系统的Fonts字体集到对应的linux系统下;以ubuntu16.04系统为例. 1.进入windows系统,到C:WindowsFonts目录,复制拷贝自己需要的字体(也可 ...
- usg6000
USG6000密码恢复 1.如果某个管理员遗忘了密码,可以使用其它高权限的管理员账号登录设备,然后修改密码.例如,管理员admin1的密码遗忘,此时可以由管理员admin登录设备,然后修改admin1 ...
- D类IP地址和组播传输
在224.0.0.0-239.255.255.255范围内的地址称为D类IP组播地址.其中,224.0.0.0-224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配 ...
- 数据看板superset在Windows环境下安装
@https://www.cnblogs.com/calmzeal/archive/2017/08/14/7359144.html 以下是我的安装版本与安装步骤: 1. 安装Python 3.7 , ...
- 16. Antimalware (反病毒 3个)
Malwarebytes反恶意软件是为Windows的恶意软件扫描程序. 作者声称使用各种技术来查找其他恶意软件扫描仪检测不到的恶意软件. 有一个有限选项的免费试用版和支持能够运行扫描计划的完整版本, ...
- Go语言极速入门手册.go
Github: https://github.com/coderzh/CodeTips /* gotips_test.go: Golang速学速查速用代码手册 Source: github.com/c ...