JDBC工具类
来源:互联网 发布:台湾用淘宝嘛 编辑:程序博客网 时间:2024/06/12 20:19
由于每次写JDBC引SQL语句很麻烦,所以就可以把JDBC封装呀,这样子以后调用起来就非常方便又简单了
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class DBUtil {private static final String URL="jdbc:mysql://localhost:3306/carsystem";//mysql数据库连接private static final String USER="root";//数据库用户名private static final String PASSWORD="root";//数据库密码private static Connection conn=null;private static Statement stmt=null;private static ResultSet rs=null;private static PreparedStatement pstm=null;private static DBUtil db = null;private DBUtil(){}public static DBUtil getDB(){if(db==null){db = new DBUtil();}return db;}/** * @return 数据库连接 */private static Connection getConn(){System.out.println("-------------------------------");try {Class.forName("com.mysql.jdbc.Driver");System.out.println("加载驱动成功!");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blockSystem.out.println("加载驱动失败,可能是没有引入数据库驱动包!");e.printStackTrace();}try {conn=DriverManager.getConnection(URL, USER, PASSWORD);System.out.println("【open 1】打开数据库连接成功!");} catch (SQLException e) {System.out.println("打开连接失败,可能是数据库服务没有开启,或者用户名密码不正确!");e.printStackTrace();}return conn;}/** * @param sql 一条sql语句 * @return 执行添加、删除、修改之后影响的行数 */public int executeUpdate(String sql){int rows=0;try{stmt=getConn().createStatement();//生成语句对象System.out.println("【open 2】生成语句对象");rows=stmt.executeUpdate(sql);}catch (Exception e){e.printStackTrace();}finally{close();}return rows;}/** * @param sql * @return 结果集对象 */public ResultSet executeQuery(String sql){try{stmt=getConn().createStatement();//生成语句对象System.out.println("【open 2】生成语句对象");rs=stmt.executeQuery(sql);System.out.println("【open 3】生成结果集对象");}catch(Exception e){e.printStackTrace();}return rs;}/** * @param sql * @return 返回查询结果封装对象list */public List<Map<String,Object>> list(String sql){ResultSetMetaData rsmd=null;List<Map<String,Object>> alist=new ArrayList<Map<String,Object>>();try {pstm=getConn().prepareStatement(sql);//生成预编译语句对象rsmd=pstm.getMetaData();//获取MetaData对象,内含字段个数,类型,名称int count=rsmd.getColumnCount();//获取查询结果字段个数rs=pstm.executeQuery(sql);//获取结果集对象System.out.println("【open 3】生成结果集对象");while(rs.next()){Map<String,Object> map=new HashMap<String,Object>();for(int i=1;i<=count;i++){String k=rsmd.getColumnLabel(i);String v=rs.getString(i);map.put(k, v);}alist.add(map);}return alist;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("ssssss");return null;}finally{close();}}/** * 关闭结果集对象、语句对象、连接对象 */private void close(){try{if(rs!=null){System.out.println("【close 3】关闭结果集对象");rs.close();}if(stmt!=null){System.out.println("【close 2】关闭语句对象");stmt.close();}if(conn!=null){System.out.println("【close 1】关闭数据连接");conn.close();}}catch(Exception e){e.printStackTrace();}System.out.println("-------------------------------");}}
单例模式的典型例子!
下一次就可以引包然后将工具类引入
格式可以为:DBUtil db=DBUtil.getDB();
1 0
- jdbc封装工具类
- JDBC工具类
- JDBC-数据库连接工具类
- JDBC工具类
- JDBC工具类
- JDBC数据库连接工具类
- jdbc工具类
- JDBC工具类
- JDBC首选工具类
- jdbc工具类
- jdbc事务工具类
- JDBC工具类
- JDBC的工具类
- JDBC 工具类
- JDBC工具类
- JDBC 工具类
- JDBC连接工具类
- JDBC封装工具类
- oj求倒数和
- 第八周OJ-分数序列
- Codeforces Round #376 (Div. 2) A. Night at the Museum
- php文件复制、重命名、删除操作
- SElinux 常用命令
- JDBC工具类
- JavaScript基础之对象
- VS2010 可以使用 #pragma once 解决一次编译的问题
- Access restriction: The type 'BASE64Encoder'找不到Jar包
- Qt浅谈之二十二Qt样式表
- Spring aop集成环境配置出错解决方案
- OJ——求三角形面积
- ElasticSearch查询详解
- Ubuntu下配置Telnet服务器