jdbc 操作步骤详解
package com.itheima.test; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; import org.junit.Test; public class JdbcTest2 { @Test
public void testAdd(){
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
//1.加载驱动 Driver------static代码块就有注册驱动 1.可以避免2次注册驱动 2.不会依赖于mysql驱动jar
Class.forName("com.mysql.jdbc.Driver");//反射原理创建对象 创建Driver类的对象 //2.创建连接
//Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day15", "root", "root"); Properties p= new Properties();
p.put("user", "root");//设置用户名 key可以参考Mysql 文档26.3.3
p.put("password", "root");//设置密码
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/day15", p); //3.得到用于发送和执行sql语句的对象 Statement
st = con.createStatement(); //4.执行语句
//boolean flag = st.execute("insert into t1 values(5,'test5')");//CRUD 返回值代表是否有结果集 有结果集返回true 没有结果集返回false
boolean flag = st.execute("select * from t1"); if(flag){
System.out.println("有结果集");
//5.处理结果
rs = st.getResultSet();//得到结果集
/*while(rs.next()){
System.out.println(rs.getObject(1)+","+rs.getObject(2));
}*/ //从后往前输出 先定位到最后一行的后面一个位置 afterLast() 不断向前走 previous()
rs.afterLast();//最后一行的后面一个位置
while(rs.previous()){
System.out.println(rs.getObject(1)+","+rs.getObject(2));
} }else{
System.out.println("没有结果集");
} } catch (Exception e) {
e.printStackTrace();
}finally{
//6.关闭资源
/*try {
if(rs!=null){
rs.close();
rs=null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(st!=null){
st.close();
st=null;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try { if(con!=null){
con.close();
con=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}*/ try {
if(rs!=null){
rs.close();
rs=null;//目的是让回收器立即进行垃圾回收
}
} catch (SQLException e) {
e.printStackTrace();
} try {
if(st!=null){
st.close();
st=null;
}
} catch (SQLException e) {
e.printStackTrace();
} try {
if(con!=null){
con.close();
con=null;
}
} catch (SQLException e) {
e.printStackTrace();
} } }
}
jdbc 操作步骤详解的更多相关文章
- 安装MACOS操作步骤详解
安装MACOS操作步骤详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于安装MAC的操作系统其实大家都知道可以让客服帮忙提供软件上的支持,而且苹果客服都很有礼貌呢,而且非常的 ...
- Java jdbc 操作数据库详解
原文地址https://www.cnblogs.com/huguodong/p/5910859.html JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集中管理的FTP根目录,方便了管理员的管理,同时将用于FTP登录的用户名.密码与系统用户账号区别开,进一步增 ...
- oa项目环境搭建的操作步骤详解
dto:多表关联查询用单独建一个类,把查询数据放dto即可 vo:是view的缩写.单独定义一个类
- java基础之JDBC一:概述及步骤详解
1. JDBC的简介 概述: 就是Java用来操作不同数据库(DBMS)的类库(技术), 本质就是一些类和接口. /* 类: DriverManager 接口: Driver, Connection, ...
- ASP.NET连接Oracle数据库的步骤详解(转)
ASP.NET连接Oracle数据库的步骤详解 本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助. 在用ASP.NET开发应用程序时, ...
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
摘自http://blog.csdn.net/elfprincexu/article/details/45043971 gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解 C和C+ ...
- 安装Cloudera manager Server步骤详解
安装Cloudera manager Server步骤详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要是针对:https://www.cnblogs.com/yin ...
- 转:WCF传送二进制流数据基本实现步骤详解
来自:http://developer.51cto.com/art/201002/185444.htm WCF传送二进制流数据基本实现步骤详解 2010-02-26 16:10 佚名 CSDN W ...
随机推荐
- 微服务理论之三:RPC框架原理
RPC调用是面向服务架构场景下进行服务间调用的常用组件,一个完整的RPC调用的流程如图1所示: 图1 RPC调用流程 为了方便RPC调用者和服务者的开发,开发者们开发了很多RPC框架.比较有名的RPC ...
- 如何在Windows平台使用VS搭建C++/Lua的开发环境
转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++ ...
- Linux(C/C++)下的文件操作open、fopen与freopen via Boblim
Linux(C/C++)下的文件操作open.fopen与freopen open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲. li ...
- leetcode笔记-1 twosum
# -*- coding: utf-8 -*- #!/bin/env python # Python2.7 nums = [2, 4, 7, 0, 12, 6] print sorted(range( ...
- LAMP 1.5 测试PHP解析 问题解决
安装完php从新加载了一个模块 php5_module 重新启动模块 /usr/local/apache2/bin/apachectl restart ifconfig 查看本机ip,在浏览器里面输入 ...
- C++中的构造函数小结
对象的初始化 对象时类的实例,类是不占用空间的,对象是占用空间的. 因为类是抽象的,不占用空间的,所以我们不能再定义类的时候对对象进行初始化操作的. 但是,我们可以定义一个函数,在类实例化一个对象的时 ...
- hadoop slf4j-api 1.6.x (or later) is incompatible with this binding
hadoop slf4j-api 1.6.x (or later) is incompatible with this binding 解决方法: 在POM文件最前面加入: <dependenc ...
- 2、Tophat align_summary.txt and samtools flagstat accepted_hits.bam disagree
###https://www.biostars.org/p/195758/ Left reads: Input : 49801387 Mapped : 46258301 (92.9% of input ...
- 17、GATK使用简介 Part2/2
转载:http://blog.sina.com.cn/s/blog_6721167201018jik.html Change Logs: 13/01/12: 增加了一篇文献,外加一些无聊的修改.12/ ...
- 8、泛型程序设计与c++标准模板库2.2向量容器
向量容器属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问).这一点与c++语言支持的基本数组类型相同,但基本数据类型不是面向对象的.而面向对象的向量是动态结构 ...