首先要在scr下创建一个file文件

当然 需要初始的注册驱动和数据库操作都可以实现,才可以用jdbc工具类进行减多少代码冗余~可以看前面一篇的博客,就是写如何连接jdbc哈~代码运行成功的快乐真的好快乐呀~

url=jdbc:mysql:///mysql
user=root
password=root
driver=com.mysql.jdbc.Driver

在项目包下创建一个util包

创建JDBCutil的类,当然我用的是Utils只是名字不一样

package cn.it.uti;

import java.io.FileReader;
import java.io.FilterReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
/*
获取连接:因为不想传递参数(麻烦——还得保证工具的通用,所以用配置文件
配置文件:
jdbc.properties,url,user,password
文件的读取只需要一次就可以读取一次,而我们可以用静态代码块
连接对象 return
*/ public class Utils {
private static String url;
private static String user;
private static String password;
//因为只有static才可以被静态类调用
private static String driver;//注册驱动用的 static {
try {
// 1 集合类
Properties pro = new Properties();
// 2.加载文件
//这里可以写绝对路径 也可以用获取src的下文件的方法 Classloader
ClassLoader classLoader = Utils.class.getClassLoader();
URL res = classLoader.getResource("jdbc.properties");//统一资源标识符
String path = res.getPath();
System.out.println(path); // pro.load(new FileReader("D:\\JAVAproject\\Javaprj\\src\\jdbc.properties"));
pro.load(new FileReader(path));
// 3.获取数据,赋值
Utils.url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
// 4.注册驱动用的
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} } catch (IOException e) {
e.printStackTrace();
}finally { } } public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user,password); }
/*
因为1、增删改是释放stsm和conn对象
2、查是释放rs、stmt、conn
*/
public static void close(Statement stmt, Connection coon, ResultSet rs){
//要catch两次 因为会有出现资源浪费的情况
if (rs != null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (stmt != null){
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (coon != null){
try {
coon.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}

最后的demo文件

package cn.it.com;

import java.sql.*;

public class JdbcFind {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "root");
String sql = "SELECT * FROM db1";//直接从可视化复制过来比较正确
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
System.out.println(rs); while (rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
Time time = rs.getTime("time");
System.out.println(id+" "+name+" "+age+" "+time);
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} }
}

demo

package cn.it.com;
import cn.it.uti.Utils;
import java.sql.*;
import java.util.Scanner; public class JDBCdemoResign {
public static void main(String[] args){
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("USERNAME:");
String username = sc.nextLine();
System.out.println("PASSWORD:");
String password = sc.nextLine();
//调用方法
boolean flag = new JDBCdemoResign().login(username, password);
//判断结果,输出不同语句
if (flag) {
System.out.println("seccess");
} else {
System.out.println("false");
}
} public boolean login(String username, String password) {
if (username == null || password == null) {
return false;
}
Connection conn = null;
PreparedStatement ptmt = null;
ResultSet rs = null;
try {
String sql = "select *from db1 where name = ? and password = ?";
conn = Utils.getConnection();
ptmt = conn.prepareStatement(sql);
ptmt.setString(1,username);
ptmt.setString(2,password);
rs = ptmt.executeQuery();
System.out.println(sql);
//空参不传参
return rs.next();
} catch(SQLException throwables) {
throwables.printStackTrace();
} finally {
Utils.close(ptmt, conn, rs);
}
return false;
} }

JDBC工具类,减少代码冗余好帮手的更多相关文章

  1. JDBC第三篇--【事务、元数据、改造JDBC工具类】

    这是我JDBC的第一篇 http://blog.csdn.net/hon_3y/article/details/53535798 这是我JDBC的第二篇 http://blog.csdn.net/ho ...

  2. JDBC【事务、元数据、改造JDBC工具类】

    1.事务 一个SESSION所进行的所有更新操作要么一起成功,要么一起失败 举个例子:A向B转账,转账这个流程中如果出现问题,事务可以让数据恢复成原来一样[A账户的钱没变,B账户的钱也没变]. 事例说 ...

  3. 开源JDBC工具类DbUtils

    本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUti ...

  4. MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. java使用注解和反射打造一个简单的jdbc工具类

    a simple jdbc tools 如有转载和引用,请注明出处,谢谢 1. 定义我们需要的注解 要想实现对数据库的操作,我们必须知道数据表名以及表中的字段名称以及类型,正如hibernate 使用 ...

  7. MySQL JDBC事务处理、封装JDBC工具类

    MySQL数据库学习笔记(十)----JDBC事务处理.封装JDBC工具类 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit. ...

  8. DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

    DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类) 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据 ...

  9. jdbc工具类1.0

    package cn.zhouzhou; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManag ...

  10. JDBC工具类连接数据库,模仿登录

    ## 使用JDBC工具类的原因在使用JDBC连接数据库的时候,加载驱动.获取连接.释放资源等代码是重复的,所有为了提高代码的复用性,我们可以写一个工具类,将数据库驱动加载.获取连接.资源释放的代码封装 ...

随机推荐

  1. C温故补缺(九):字节对齐与排序

    字节对齐与排序 字节对齐的原因与字节排序 取自:VisualEther 原文档下载:Gitee _packed _packet用于结构体中变量在内存中的对齐.如 typedef struct test ...

  2. java 运用jxl 读取和输出Excel

    文章结尾源码以及jxl包 1.输出excel: package JmExcel; import java.io.File; import java.io.FileOutputStream; impor ...

  3. java 定时开始执行程序

    package com.zx.ps.web.gzdb; import java.util.Calendar; import java.util.Date; import java.util.Timer ...

  4. 【JVM故障问题排查心得】「内存诊断系列」JVM内存与Kubernetes中pod的内存、容器的内存不一致所引发的OOMKilled问题总结(上)

    背景介绍 在我们日常的工作当中,通常应用都会采用Kubernetes进行容器化部署,但是总是会出现一些问题,例如,JVM堆小于Docker容器中设置的内存大小和Kubernetes的内存大小,但是还是 ...

  5. nginx配置文件单独创建和管理

    在nginx主配置文件nginx.conf的http模块下引入配置文件夹(注意路径的正确性) 1.nginx主配置文件备份后编辑(nginx配置存放位置:/usr/local/nginx/conf/) ...

  6. 视频超分之BasicVSR-阅读笔记

    1.介绍 对于视频超分提出了很多方法,EDVR中采用了多尺度可变形对齐模块和多个注意层进行对齐和定位并且从不同的帧聚合特征,在RBPN中,多个投影模块用于顺序聚合多个帧中的特征.这样的设计是有效的,但 ...

  7. 使用Spring Reactor优化推荐流程

    1. 背景 公司有一个推荐系统Rec,这个系统的主要功能是: 向外部系统提供推荐接口 根据请求获取推荐策略 根据推荐策略完成推荐的召回.过滤.打分.排序阶段 Rec作为微服务中的一环,本身不存储召回的 ...

  8. 网络工具netstat与ss

    建议使用ss命令,2001年的时候netstat 1.42版本之后就没更新了,之后取代的工具是ss.netstat命令在很多场景下比较慢.ss可以显示跟netstat类似的信息,但是速度却比netst ...

  9. java中的自增运算

    本文主要阐明java中的自增运算 1.当i ++ 与 ++ i作为单独语句时,作用与i = i +1一样 2.当赋值时,结果就不一样了 temp = i ++: 操作顺序:1)temp = i: 2) ...

  10. BeanShell 后置处理器/前置处理器实现urldecode 解码

    1.使用正则/Json提取器提取需要解码的值 2.在提取的接口中添加后置处理器或在下个调用接口中添加前置处理器 3.编码实现 String token = vars.get("access_ ...