1. jdbc使用查看驱动的doc文档《connector-j.html》

2.代码实现:1. 注册驱动---2. 建立连接---3. 创建statement ,跟数据库打交道---

      ---4. 执行sql,得到ResultSet---5. 遍历结果 ---6. 释放资源

package zj_1_JDBC;

import java.sql.*;

public class MainTest {
public static void main(String[] args) throws ClassNotFoundException {
//注册驱动
Class.forName("com.mysql.jdbc.Driver"); //注册驱动这步可以写也可以不用写 String url = "jdbc:mysql://localhost/student";
String username = "root";
String password = "root";
Connection conn = null;
Statement st = null;
ResultSet rs = null; try {
        //建立连接
conn = DriverManager.getConnection(url,username,password);
// 创建statement
st = conn.createStatement();//创建statement ,跟数据库打交道,一定需要这个对象 // 执行sql,得到ResultSet
String sql = "SELECT * FROM users WHERE name = '小明'";
rs = st.executeQuery(sql); // 遍历结果
while (rs.next()) { //rs.next() 当读到行末尾时会返回false,下一行有数据则返回true
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age"); System.out.println(id+""+name+","+age);
} } catch (SQLException e) {
e.printStackTrace();
}finally {
// 释放资源
JDBCUtil.release(conn,st,rs);
/* try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
} try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}*/
} }
}

工具类,整合释放资源方法

package zj_1_JDBC;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class JDBCUtil {
Connection conn = null;
Statement st = null;
ResultSet rs = null; public static void release(Connection conn, Statement st, ResultSet rs) {
closeRs(rs);
closeSt(st);
closeConn(conn);
} private static void closeRs(ResultSet rs){
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
} private static void closeSt(Statement st) {
try {
if(st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
st = null;
}
} private static void closeConn(Connection conn) {
try {
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
conn = null;
}
}
}

中阶d03.1 JDBCDemo的更多相关文章

  1. 中阶 d03.5 (正篇)完整的Dao 操作数据库

    1.目录结构: util---JDBCUtil.java(工具包,整合建立链接和释放资源的方法) dao---UserDao.java(接口,定义方法) impl---UserDaoImpl.java ...

  2. 中阶d03.2 JDBC联合properties使用,通过读取本地配置文件为代码传递参数

    * 使用properties读取本地配置文件为代码传递参数 * url.用户名.密码.驱动地址等配置可以在配置文件中使用 main package zj_1_JDBC.properties; impo ...

  3. 中阶d03 JDBC 使用

    1.首先在数据库中创建表 2.安装mysql驱动 java开发环境中导入jdbc连接mysql的jar包 mysql-connector-java-5.1.7-bin.jar 下载地址:https:/ ...

  4. 中阶d03.4 JDBC_DAO

    1.环境准备(单项目下用,在大jdbc项目下只用配置一次) jdbc的驱动(mysqlxxjdbc.jar).util工具(包装释放资源.建立连接.访问properties文件等方法) 2.dao的概 ...

  5. 中阶d03.3 JDBC_CURD_Util --- 使用 junit执行单元测试(增删改查)

    1.单元测试环境准备 https://www.cnblogs.com/longesang/p/11399010.html 2.测试 3.结果返回 4.代码 新建一个test目录统一存放测试案例 查: ...

  6. R_数据视觉化处理_中阶_05

    条形图:条形图通过垂直或水平的条形展示了类型变量的分布(频数).最简单的用法为:barplot(height),height为矩阵或向量. horiz=TRUE选项:表示水平,在此之前先使用table ...

  7. 中阶 d05 tomcat 安装 eclipse上配置tomcat

    eclipse使用参考 https://www.bilibili.com/video/av49438855/?p=24 1. 直接解压 ,然后找到bin/startup.bat 2. 可以安装 启动之 ...

  8. 中阶 d04.1 xml解析

    ##XML 解析 > 其实就是获取元素里面的字符数据或者属性数据. ###XML解析方式(面试常问) > 有很多种,但是常用的有两种. * DOM * SAX ![icon](img/pa ...

  9. 中阶 d04 xml 概念及使用

    idea新建xml文件https://www.jianshu.com/p/b8aeadae39b0 或https://blog.csdn.net/Hi_Boy_/article/details/804 ...

随机推荐

  1. 从发布订阅模式入手读懂Node.js的EventEmitter源码

    前面一篇文章setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop详细讲解了浏览器和Node.js的异步API及其底层原理Event Loop.本文会讲一下不 ...

  2. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'employeeId' not found. Available parameters are [page, map, param1, param2] 解决方法

    原因很简单就是没映射到接口添加 @Param 注解 ->@Param("map") 然后在mapper.xml map.employeeId 再次测试 已经解决 ->

  3. [极客大挑战 2019]BabySQL 1

    考点就是一系列的sql注入操作 和 replace函数过滤 进入页面如图 ​ 基础过滤测试 union .select .information_schema试试有没有被过滤 ?username=ad ...

  4. 强智教务系统验证码识别 OpenCV

    强智教务系统验证码识别 OpenCV 强智教务系统验证码验证码字符位置相对固定,比较好切割 找准切割位置,将其分为四部分,匹配自建库即可,识别率近乎100%,如果觉得不错,点个star吧

  5. babel-loader配置

    1.npm i @babel/core.@babel/preset-env.@babel/runtime.@babel/plugin-transform-runtime.@babel/plugin-p ...

  6. hdu1686kmp果题

    kmp字符串匹配原理参考博客:https://blog.csdn.net/bqw18744018044/article/details/90516750 代码如下:(写一遍模板) #include&l ...

  7. 第八周Java实验作业

    实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: 声明:  public interface 接口名 {...} 接口体中包含常量定义和方法定义 ...

  8. 听说用 Lombok 可以早点下班?

    听说隔壁用 Lombok 的六点就下班了,我也想六点下班! 好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的? 在介绍之前,先通过是否使用 Lomb ...

  9. 大规模机器学习(Large Scale Machine Learning)

    本博客是针对Andrew Ng在Coursera上的machine learning课程的学习笔记. 目录 在大数据集上进行学习(Learning with Large Data Sets) 随机梯度 ...

  10. Building Applications with Force.com and VisualForce (DEV401) (二) : Application Essentials:Designing Application on the Force.com Platform

    Dev 401-002:Application Essentials:Designing Application on the Force.com Platform Course Objectives ...