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();
} } }
}

最新文章

  1. In-Memory:内存优化表的事务处理
  2. Beta版
  3. Firemonkey TComboBox 下拉菜单字型修改方法 (D10)
  4. svn server
  5. addin 笔记
  6. 【C#进阶系列】07 常量和字段
  7. OpenStack 新加计算节点后修改
  8. [优先队列]HDOJ5289 Assignment
  9. Children of the Candy Corn
  10. 【USACO 3.2.6】香甜的黄油
  11. css float父元素高度塌陷
  12. 小代码编写神器:LINQPad 使用入门
  13. Unity3D消息:消息传递函数
  14. [ An Ac a Day ^_^ ] hdu 4565 数学推导+矩阵快速幂
  15. [luogu1402]酒店之王_网络流
  16. AB PLC首次IP地址如何分配
  17. Windows OpenSSH 基本用法
  18. SQLServer: 解决“错误15023:当前数据库中已存在用户或角色”
  19. bootstrap4相关文档
  20. GoLang学习控制语句之switch

热门文章

  1. 【转】 Pro Android学习笔记(三三):Menu(4):Alternative菜单
  2. JS---星星评分
  3. 使用SVG + CSS实现动态霓虹灯文字效果
  4. Python-requests取消SSL验证的警告InsecureRequestWarning解决办法
  5. python 基础 序列化
  6. Mysql 增量备份和全量备份
  7. AngularJS(Part 10)--页面导航
  8. VS编译器中设置 输出窗口 只显示error,不显示warning 要如何配置
  9. hadoop-2.3.0-cdh5.1.0完全分布式集群配置及HA配置(待)
  10. Ubuntu W: GPG 错误:下列签名无效: BADSIG 84DBCE2DCEC45805 Launchpad PPA fo