博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 数据库简单操作类
阅读量:5350 次
发布时间:2019-06-15

本文共 4500 字,大约阅读时间需要 15 分钟。

 

数据库操作类,将所有连接数据库的配置信息以及基本的CRUD操作封装在一个类里,方便项目里使用,将连接数据库的基本信息放在配置文件 "dbinfo.properties" 中,通过类加载器调用(也可以通过ServletContext调用配置文件,或者配置在web.xml里通过ServletConfig调用),需要修改数据库连接信息时,只需修改配置文件即可。

  

1 package com.latiny.db;  2   3 import java.io.*;  4 import java.sql.*;  5 import java.util.ArrayList;  6 import java.util.Properties;  7   8 /*  9  * 数据库操作类 10  */ 11  12 public class DBUtil { 13  14     //定义需要的变量 15     private static String driver =null; 16     private static String url =null; 17     private static String user=null; 18     private static String password=null; 19      20     private static Connection conn; 21     //使用PreparedStatment可以防止sql注入 22     private static PreparedStatement ps; 23     private static ResultSet rs; 24     private static CallableStatement cs; 25      26     //读配置文件 27     private static Properties pp=null; 28     private static InputStream fis=null; 29      30      31     //加载驱动,只需要执行一次 32     static 33     { 34         try 35         { 36             pp = new Properties(); 37              38             //当我们使用java web的时候,读取文件要使用类加载器 39             fis = DBUtil.class.getClassLoader().getResourceAsStream("dbinfo.properties"); 40              41             pp.load(fis); 42             driver = pp.getProperty("DRIVER"); 43             url = pp.getProperty("URL"); 44             user = pp.getProperty("USER"); 45             password = pp.getProperty("PASSWORD"); 46              47             // 1 加载驱动 48             Class.forName(driver); 49              50         } 51         catch(Exception e) 52         { 53             e.printStackTrace(); 54         } 55         finally 56         { 57             try  58             { 59                 fis.close(); 60             } catch (IOException e) { 61                 // TODO Auto-generated catch block 62                 e.printStackTrace(); 63             } 64             fis = null; 65         } 66     } 67      68     /* 69      * 获取Connection连接 70      */ 71     public static Connection getConn() 72     { 73         try  74         { 75             // 2 获取数据库连接 76             conn = DriverManager.getConnection(url, user, password); 77         }  78         catch (SQLException e)  79         { 80             // TODO Auto-generated catch block 81             e.printStackTrace(); 82         } 83          84         return conn; 85     } 86      87     /* 88      * 直接返回rs结果,此方法不能关闭rs,因为后面调用它的类还会用到,如果关闭则不能正常使用 89      */ 90     public static ResultSet queryResult(String sql, String[] parameters) 91     { 92         try  93         { 94             conn = getConn(); 95             // 3 创建Statement对象 96             ps = conn.prepareStatement(sql); 97             // 4 给问号赋值,即给sql语句的条件参数赋值如果需要的话 98             if(parameters!=null) 99             {100                 for(int i=1; i<=parameters.length; i++)101                 {102                     ps.setString(i, parameters[i-1]);103                 }104             }105             106             // 5 执行sql获取返回结果107             rs = ps.executeQuery();108         } 109         catch (SQLException e) 110         {111             // TODO Auto-generated catch block112             e.printStackTrace();113         }114 115         return rs;    116     }117     118     /*119      * 将rs结果封装成ArrayList,然后可以关闭rs,节省数据库访问资源120      */121     public static ArrayList queryResult2(String sql, String[] parameters)122     {123         ArrayList al = new ArrayList();124         125         try 126         {127             //2 获取数据库连接128             conn = getConn();129             //3 创建Statement对象130             ps = conn.prepareStatement(sql);132             //4  给问号赋值,即给sql语句的条件参数赋值如果需要的话133             if(parameters!=null)134             {135                 for(int i=1; i<=parameters.length; i++)136                 {137                     ps.setString(i, parameters[i-1]);138                 }139             }140             141             //5 执行sql语句获取返回结果142             rs = ps.executeQuery();143             144             //获取rs的结构145             ResultSetMetaData rsmd = rs.getMetaData();146             //获取查询语句的列数147             int column = rsmd.getColumnCount();148             149             while(rs.next())150             {151                 //对象数组,存储一行数据152                 Object[] objs = new Object[column];153                 for(int i=0; i

 

 

dbinfo.properties文件配置信息

DRIVER=com.mysql.jdbc.DriverURL=jdbc:mysql://localhost:3306/servletUSER=latinyPASSWORD=123456

 

转载于:https://www.cnblogs.com/Latiny/p/8336758.html

你可能感兴趣的文章
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>
使用 MarkDown & DocFX 升级 Rafy 帮助文档
查看>>
THUPC2019/CTS2019/APIO2019游记
查看>>
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>
POJ 2960 S-Nim 博弈论 sg函数
查看>>
Dijkstra模版
查看>>
一个简单的插件式后台任务管理程序
查看>>
GDB调试多进程程序
查看>>
组合数
查看>>
CMD批处理延时启动的几个方法
查看>>
转:LoadRunner中web_custom_request 和 web_submit_data的差别
查看>>
HTC G7直刷MIUI开启A2SD+亲测教程
查看>>
shiro的rememberMe不生效
查看>>
const 不兼容的类型限定符问题
查看>>
OpenCV的配置
查看>>