一、文章结构

工具类完整源码

SQL语句编写及操作

标识符的一般命名规范

二、工具类DbUtils

编写工具类的准备工作

  1. 安装mysql数据库,并制作表格;
  2. 在工程目录下新建lib文件夹,导入mysql-connector-java-5.1.37-bin.jar包,右键文件选择Build Path-->add Build Path...
  3. 编写配置文件,放入src目录下
  • 不同的数据库有不同的驱动类及url,命名规范也不相同,需要根据数据库JDBC操作帮助文档编写字符串
  • 配置文件必须是'键=值'对形式,不能有空格和标点符号,严格区分大小写
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/database
username=root
password=123
复制代码
package cn.edu.nefu.jdbc.dbutils;import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;public class DbUtils {private static Connection con;private static String driver;private static String url;private static String username;private static String password;static{try {readinfo();                    //读取配置文件Class.forName(driver);      //反射的方式注册驱动con = DriverManager.getConnection(url, username, password);         //获取数据库连接} catch (Exception e) {e.printStackTrace();throw new RuntimeException("数据库连接失败");            //如果数据库连接异常直接终止程序}}//获取连接方法public static Connection getConnection() {return con;}//释放资源public static void close(ResultSet rs, Statement ps, Connection con) {try {if(rs != null) {rs.close();rs = null;}} catch (SQLException e) {e.printStackTrace();}finally{try {if(ps != null){ps.close();ps = null;}} catch (SQLException e) {e.printStackTrace();}finally{try {if(con != null) {con.close();con = null;}} catch (SQLException e) {e.printStackTrace();}}}}//没有结果集释放资源public static void close(Statement ps, Connection con) {try {if(ps != null){ps.close();ps = null;}} catch (SQLException e) {e.printStackTrace();}finally{try {if(con != null) {con.close();con = null;}} catch (SQLException e) {e.printStackTrace();}}}//读取配置文件private static void readinfo() throws IOException {//获取输入流 配置文件dbutils.properties放在工程src文件夹下InputStream is = DbUtils.class.getClassLoader().getResourceAsStream("dbutils.properties");//建立属性集合Properties pro = new Properties();//读取属性列表pro.load(is);//读取键所对应的值,并赋值driver = pro.getProperty("driver");url = pro.getProperty("url");username = pro.getProperty("username");password = pro.getProperty("password");//关闭流is.close();}
}
复制代码

三、测试

package cn.edu.nefu.jdbc.dbtest;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.edu.nefu.jdbc.dbutils.DbUtils;
public class DBTest {public static void main(String[] args) throws SQLException{//测试Connection con = DbUtils.getConnection();//sql语句不区分大小写,但是关键字建议使用大写,便于区分String sql = "SELECT * FROM students WHERE sid = ?";//为了防止注入攻击,这里使用预处理集方式PreparedStatement ps = con.prepareStatement(sql);ps.setString(1, "002");ResultSet rs = ps.executeQuery();while(rs.next()) {System.out.println(rs.getString("sid") + "   " + rs.getString("sname") + "   " + rs.getString("phoneNum"));}DbUtils.close(rs, ps, con);}
}
复制代码

四、几点注意事项

  1. 自定义包的命名规范(参考《The Java Language Specification》)
  • 名称都应该以自己的单位或者组织的Internet域名开头,并且定顶级域名放在前面;
  • 用户自定义包的名称决不能以java和javax开头;
  • 包名称的其余部分应该包括一个或者多个描述该包的组成部分,并且简短,单个层级名称通常不超过8个字符;
  • 鼓励使用有意义的缩写形式,例如utils就是utilities的缩写。
  1. 自定义类、接口、枚举、注释的命名规范
  • 每个单词首字母大写;
  • 尽量避免使用缩写,通用的缩写除外;
  • 遇到首字母缩写的情况,建议使用首字母大写而不是全部大写,例如HttpUrl而不是HTTPURL;
  1. 自定义方法和变量的命名规范
  • 首个单词小写,其它单词大写;
  • 如果遇到多个单词首字母缩写的形式,建议都小写;
  • 常量的名称应该所有的单词大写,并且单词之间使用下划线分割;
  • 常量是唯一一个建议使用下划线命名的情形。
  1. 类型参数
  • T 表示任意类型
  • E 表示集合的元素类型
  • K 映射的键类型
  • V 映射的值类型
  • X 表示异常

如果长期养成的习惯用法与此不同,请不要盲目遵从这些命名惯例。

转载于:https://juejin.im/post/5a34e6bff265da43133d381e

使用工具类DbUtils连接数据库,并简单操作数据库相关推荐

  1. php上传图片到数据库2020,弱鸡养成第三天(2020.10.19)-php连接并简单操作数据库

    弱鸡养成第三天(2020.10.19)-php连接并简单操作数据库 弱鸡养成第三天(2020.10.19)-php连接并简单操作数据库 php连接数据库 连库基本操作 首先找到php.ini 文件中的 ...

  2. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  3. JavaSE03: Arrays工具类的使用及简单数组算法

    离散数学终于考完了,接下来终于可以一心学习java了~~ Arrays工具类的使用 **Arrays类是用来操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法,使用时需要导包java. ...

  4. [Android自定义控件] Android Scroller工具类和GestureDetector的简单用法

    转载:http://ipjmc.iteye.com/blog/1615828 Android里Scroller类是为了实现View平滑滚动的一个Helper类.通常在自定义的View时使用,在View ...

  5. 解决spring的读取文件的工具类来获取文件等操作

    今天项目又遇到了,,,读取项目下文件的情况下. 其实这个挺头疼的,,,特别是 Java web项目 下的方式和 Java 项目 下 读取文件的相对路径是有点区别的...所以感觉挺不好搞的... 而且 ...

  6. 杨校老师课堂之Html页面快速转为jsp页面之工具类【简直太简单好用】

    借原型编写助工jsp页面时,会因递归有大量的html页面,手动更改为jsp页面,造成时间浪费,所以通过下面的工具类就可以快速完成html页面转为jsp页面的过程了. 增加框架模块 添加web模块支持 ...

  7. mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

    数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器.PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习. 相关mysql视频教 ...

  8. MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

    MySQL数据库工具类之--DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; us ...

  9. 使用CachedRowSet建立连接数据库工具类DBUtils

    CachedRowSet:可在内存中缓存其各行,使得进行操作是无需总是连接到数据源,是一个非连接rowset,这意味着它只会短暂的连接其数据源,获取数据方式和ResultSet相似,将ResultSe ...

  10. 扔掉工具类,Mybatis一个简单配置搞定数据加密解密!

    今日推荐 推荐 20 款 IDEA 主题!开源困境:Log4j2 维护者发声:没有工资,还要挨骂!!RedisJson 横空出世,性能碾压ES和Mongo!还在发愁写API文档?推荐一款阿里腾讯都在用 ...

最新文章

  1. 使用参数化化模型投影点云
  2. ASP.NET MVC系列:添加控制器
  3. zoj3557 插板法卢卡斯求组合数取模
  4. 项目经理如何管理情绪?这三本书管理书籍你必须要看
  5. linux加密框架 crypto 算法管理 - 算法查找接口 crypto_alg_mod_lookup
  6. php 检查路劲是否存在,php 检查文件或目录是否存在代码总结
  7. 超像素分割算法matlab_像素不够,算法来凑。这个图像超分辨率项目帮你「拍」出高清照片...
  8. SQL2005 DDL触发器
  9. arm linux装wine,Ubuntu下安装wine详细介绍
  10. Membership三步曲之入门篇 - Membership基础示例
  11. 初中节点法分析电路_初三物理电路图解题思路:电路简化原理
  12. 超全面Figma,Pixso和Sketch工具盘点
  13. DA数模转换 DAC0832 笔记
  14. 江西2万余个村庄整治建设 古村落旧貌换新颜
  15. jboss简单使用--刚开始接触,感觉还是比较详细的
  16. Bill Gekas儿童摄影作品欣赏
  17. ConcurrentHashMap1.7 最最最最最详细源码分析
  18. 【python】-- paramiko、跳板机(堡垒机)
  19. 这时的我已经激动的连话都说不出来了
  20. C#中Newtonsoft.Json(Json.NET)的使用

热门文章

  1. Django---简单from表单提交
  2. DelegatingFilterProxy详解
  3. 像写C#一样编写java代码
  4. 火车票线程同步(一)互斥体实现
  5. vue.js 常用语法总结(一)
  6. java int转integer方法
  7. Android开发之使用Handler刷新UI控件
  8. 微软发布新版Silverlight 5 - 版本 5.1.10411.0
  9. 利用自定义事件实现不同窗体间的通讯 -- C#篇
  10. python token_Python实现JWT(JSON Web Token)认证