数据库连接类
2016-01-14 15:09
381 查看
package com.hj.jdbcconnect; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @(#)DataBase.java 010/04/22 * @author Dudu * EST.All rights reserved */ public class DataBase { /**定义一个Connection 用来连接数据库*/ private Connection conn=null; /**连接数据库的URL*/ private final String url="jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8"; /**指定数据的用户名和密码*/ private final String username="root"; private final String password=""; /**定义一个int记录更新的记录数量*/ int count=0; /**定义一个结果集 用于放回查询结果*/ private ResultSet resultSet=null; private PreparedStatement pstmt=null; public DataBase(){ conn = connectionDB(); } /** * 建立数据的连接 * @exception SQLException, ClassNotFoundException */ @SuppressWarnings("finally") public Connection connectionDB(){ try{ Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection(url,username,password); System.out.println("连接数据库成功"); }catch(Exception e){ e.printStackTrace(); System.out.println("建立数据库发生错误!"); }finally{ return conn; } } /** * 查询方法 * @param sql查询sql语句 * @return resultSet */ @SuppressWarnings("finally") public ResultSet query(String sql){ try { pstmt = conn.prepareStatement(sql); /**查询*/ resultSet = pstmt.executeQuery(); System.out.println("查询成功"); } catch (SQLException e) { e.printStackTrace(); }finally{ return resultSet; } } /** * 更新数据 * @param sql 更新sql语句 * @return */ public int update(String sql){ try { pstmt = conn.prepareStatement(sql); count=pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); System.out.println("执行更新出错了"); } return count; } /** * 添加的方法: * @param sql * @return count */ public int add(String sql){ try { pstmt = conn.prepareStatement(sql); count=pstmt.executeUpdate(sql); System.out.println("添加成功"); } catch (SQLException e) { e.printStackTrace(); System.out.println("执行添加出错了"); } return count; } /**关闭连接*/ public boolean coles(){ boolean isColes = false; if(resultSet!=null){ try { resultSet.close(); resultSet=null; isColes=true; } catch (SQLException e) { isColes=false; e.printStackTrace(); System.out.println("关闭结果集发生错误"); } } if(pstmt!=null){ try { pstmt.close(); pstmt=null; isColes=true; } catch (SQLException e) { isColes=false; e.printStackTrace(); System.out.println("关闭pstmt发生异常"); } } if(conn!=null){ try{ conn.close(); conn=null; isColes=true; }catch (Exception e) { isColes=false; e.printStackTrace(); System.out.println("关闭conn发生异常"); } } return isColes; } /** * 测试查询的方法 * @throws SQLException */ public void testQuery() throws SQLException{ resultSet =query("select name from stu where id=4 "); if(resultSet.next()){ System.out.println(resultSet.getString(1)); //System.out.println(resultSet.getString(2)); } } public void testUpdate(){ count = update("update stu set name='wwww' ,age=22 where id=1" ); if(count>0){ System.out.println("更新成功"); } } /** * * @param args * @throws SQLException * @throws ClassNotFoundException */ public static void main(String[] args) throws SQLException, ClassNotFoundException { DataBase db = new DataBase(); //stu stu=new stu(); /**调用查询方法*/ //db.testQuery(); /**调用更新方法*/ //db.testUpdate(); //db.add("insert into stu(id,name,age) values(8,'三',34)"); //db.update("insert into stu (id,name,age) values(3,'wangsan',12)"); //db.testUpdate(); //db.add("insert into stu(id,name,age) values(6,'lisi',34)"); db.update("update stu set name='zhaowu' ,age=1 where id=4"); //db.testQuery(); db.testQuery(); /**调用关闭连接方法*/ db.coles(); } }
另一种方式:
package com.home.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ConnectionManager { public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/easyui"; public static final String USERNAME = "root"; public static final String PASSWORD = ""; /** * 通过静态代码块 注册数据库驱动 */ static{ try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获得Connection * * @return */ public static Connection getConnection() { Connection conn = null; try { conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); }catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 获得总记录数 * @return */ public static int getRows(String queryConditions){ int rows = 0; Statement sta = null; ResultSet rs = null; Connection conn = getConnection(); try { sta = conn.createStatement(); rs = sta.executeQuery("select * from e_user "+queryConditions); rs.last(); rows = rs.getRow(); } catch (SQLException e) { e.printStackTrace(); } return rows; } public static void main(String[] args) { //System.out.println(getRows()); } /** * 关闭ResultSet * @param rs */ public static void closeResultSet(ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭Statement * @param st */ public static void closeStatement(Statement st) { if (st != null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭Connection * @param conn */ public static void closeConnection(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭全部 * @param rs * @param sta * @param conn */ public static void closeAll(ResultSet rs,Statement sta,Connection conn){ closeResultSet(rs); closeStatement(sta); closeConnection(conn); } }
相关文章推荐
- Redis学习记录之Pub/Sub简析(十七)
- MySQL基础知识
- windows下的环境搭建配置redis
- sql中distinct与group by的用法解析
- Linux Memcached安装以及PHP扩展安装
- 使用sql语句比较excel中数据的不同
- websql
- SQLServer存储过程--在数据库中所有表中查找某一字符串
- SQL Server中row_number的用法
- PowerDesigner 数据库设计导出到Excel
- sql cast
- oracle 错误代码一览表
- 【总结】MyCat分布式数据库中间件
- redis安装与配置笔记
- 【总结】分布式缓存Memcached
- Oracle SQL*Net相关的空闲等待事件
- 【总结】瞬时高并发(秒杀/活动)Redis方案
- Entity Framework数据库初始化四种策略
- 设置Mysql的连接超时参数
- 【总结】MySQL性能优化