数据库连接工具 DBUtil.java

打印 上一主题 下一主题

主题 888|帖子 888|积分 2664

文章目录




前言

提示:这里可以添加本文要记录的大概内容:
JDBC能完成三件事:
同一个数据库建立连接
向数据库发送SQL语句
处理数据库返回结果

提示:以下是本篇文章正文内容,下面案例可供参考
JDBC访问数据库的步骤

第一步:加载正确的数据库驱动程序
  1. Class.forName("com.mysql.jdbc.Driver");
复制代码
第二步:定义所要连接数据库的地址
此处 dbname为数据库的名字
  1. String url = "jdbc:mysql://localhost:3306/dbname";
复制代码
第三步:建立与数据库的连接
  1. Connection con=DriverManager.getConnection(url,"root", "root");
复制代码
第四步:创建语句对象
  1. String sql="select * from food where material like ?"
  2. PreparedStatement  pstmt=conn.prepareStatement(sql);
  3. //带?的SQL语句一定要在执行之前给?赋值,char和varchar都是setString替换?,
  4. //对于int型数据可以使用setInt替换?
  5. pstmt.setString(1, "%鸡蛋%");//参数1表示第一个?
复制代码
第五步:声明SQL语句,并将该语句通过Statement对象提交给服务器进行执行
  1. ResultSet rs=ps.executeQuery();
  2. //注意,此时executeQuery()不带参数
复制代码
第六步:对查询结果进行分析
  1. while(rs.next()){
  2.         String name =rs.getString(“columName”);//根据列名获取字段值
  3.         String phone =rs.getString(2);//根据列号获取字段值,从1开始数列号
  4.         System.out.println(name+","+phone);
  5. }
复制代码
第七步:关闭打开的资源(按定义的逆序关闭)
  1. rs.close();
  2. pstmt.close();
  3. con.close();
复制代码
JDBC的优缺点

JDBC API 用于连接 Java 应用程序与各种关系数据库。
这使得人们在建立客户/服务器应用程序时,通常把 Java 作为编程语言,把任何一种浏览器作为应用程序的友好界面,把 Internet 或Intranet 作为网络主干,把有关的数据库作为数据库后端。
使用JDBC具有以下优点:

(1)、JDBC API 有利于用户理解。
(2)、JDBC 使得编程人员从复杂的驱动器调用命令和函数中解脱出来,可以致力于应用程序中的关键地方。
(3)、JDBC 支持不同的关系数据库,使得程序的可移植性大大加强。
(4)、JDBC API 是面向对象的,可以让用户把常用的方法封装为一个类以备后用。
使用JDBC具有如下缺点:

(1)、使用 JDBC,访问数据记录的速度会受到一定程度的影响。
(2)、JDBC 结构中包含了不同厂商的产品,这就给更改数据源带来了一定的麻烦。
DBUtil.java

JavaWeb项目
  1. package dao;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import com.mysql.jdbc.Connection;
  5. import com.mysql.jdbc.PreparedStatement;
  6. public class DBUtil {
  7.         private static java.sql.Connection con = null;// 连接对象
  8.         private static PreparedStatement pstmt = null;// 语句对象
  9.         private static ResultSet rs = null;  // 结果集对象
  10.        
  11.        
  12.         //连接数据库
  13.         public static Connection getCon(){
  14.     //定义所要连接数据库的地址
  15.         String url = "jdbc:mysql://localhost:3306/00eshop?useUnicode=true&characterEncoding=UTF-8";
  16.         String user = "root";    //数据库用户名
  17.         String password = "123456";   //数据库密码
  18.                 try {
  19.                         //加载正确的数据库驱动程序
  20.                         Class.forName("com.mysql.jdbc.Driver");
  21.                         //建立与数据库连接
  22.                         con = DriverManager.getConnection(url, user, password);
  23.                         //System.out.println("--------------"); 出现横线,代表数据库连接上了
  24.                         return (Connection) con;
  25.                 } catch (Exception e) {
  26.                         System.out.println(e);
  27.                         return null;
  28.                 }
  29.         }
  30.        
  31.         //关闭数据库,(避免资源浪费,或者其他数据库来访问)
  32.         public static void close(ResultSet rs,PreparedStatement ps,Connection con){
  33.                 if (rs != null) {
  34.                         try {
  35.                                 rs.close();
  36.                         } catch (Exception e) {
  37.                                 System.out.println(e);
  38.                         }
  39.                 }
  40.                 if (ps != null) {
  41.                         try {
  42.                                 ps.close();
  43.                         } catch (Exception e) {
  44.                                 System.out.println(e);
  45.                         }
  46.                 }
  47.                 if (con != null) {
  48.                         try {
  49.                                 con.close();    //关闭打开的资源
  50.                         } catch (Exception e) {
  51.                                 System.out.println(e);
  52.                         }
  53.                 }
  54.         }
  55. }
复制代码
注解:


Connection 是个接口,这个 Connection 连接成立后才能把SQL语句往这里面传,先跟数据库建立一个良好的联系
在DBUtil.java类中定义 getCon() 方法创建数据库链接(第16行)
具体说第18 行是什么意思:
【String url = "jdbc:mysql://localhost:3306/00eshop?useUnicode=true&characterEncoding=UTF-8 ";】
jdbc:是连接数据库的一种形式
mysql:数据库的类型是mysql
localhost:本地地址,也可以换成:【127.0.0.1】
3306:端口号(默认数据库端口,最好不要改)
这个在Navicat和 VS Code中可以看到:


/ 后面的【00eshop】:是数据库名称

? 后的【useUnicode=true&characterEncoding=UTF-8】
这些是针对不同的 MySql 版本进行传值


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表