在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!!

一、数据库的连接,常用的方式有直接将那些要连接的参数放到java类中、将连接参数放到Properties文件中或者放到XML文件中,下面一一为大家描述

1、直接连接:

        普通的配置方式public static Connection getConnection(){Connection conn=null;try {Class.forName("com.mysql.jdbc.Driver");String url="jdbc:mysql://127.0.0.1:3306/xinyuandb";String username="root";String password="123456";conn=DriverManager.getConnection(url, username, password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}

2、通过Properties文件创建连接,好处,很灵活,不用在代码里面进行更改

创建jdbc.properties文件

driver=com.mysql.jdbc.Driver
  url=jdbc\:mysql\://127.0.0.1\:3306/xinyuandb
  username=root
  password=123456

        从properties文件中读取public static Connection getConnection(){Connection conn=null;Properties p=new Properties();try {//从当前线程加载p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties"));Class.forName(p.getProperty("driver"));conn=DriverManager.getConnection(p.getProperty("url"), p.getProperty("username"), p.getProperty("password"));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}
3、通过XML文件读取
创建jdbc.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<config>
<jdbc-config>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/xinyuandb</url>
<username>root</username>
<password>123456</password>
</jdbc-config>
</config>
创建javaBean类
package com.common.db;
public class JdbcBean {
private String driver;
private String url;
private String username;
private String password;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
创建XML解析类
package com.common.db;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;public class XmlConfigReader {private static XmlConfigReader instance;private JdbcBean bean=null;//调用构造函数进行XML文件解析private XmlConfigReader(){SAXReader reader=new SAXReader();try {Document doc=reader.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.xml"));Element root=doc.getRootElement();Element first=root.element("jdbc-config");String driver=first.element("driver").getText();String url=first.element("url").getText();String username=first.element("username").getText();String password=first.element("password").getText();bean=new JdbcBean();bean.setDriver(driver);bean.setUrl(url);bean.setUsername(username);bean.setPassword(password);} catch (DocumentException e) {e.printStackTrace();}}public synchronized static XmlConfigReader getInstance(){if(instance==null){instance=new XmlConfigReader();}return instance;}public JdbcBean getJdbeanBean(){return bean;}}
// 从XML文件中读取配置取得同一Connection
//    static Connection conn=null;
//    static{
//        JdbcBean jdbc=XmlConfigReader.getInstance().getJdbeanBean();
//        try {
//            Class.forName(jdbc.getDriver());
//            conn=DriverManager.getConnection(jdbc.getUrl(), jdbc.getUsername(),jdbc.getPassword());
//        } catch (ClassNotFoundException e) {
//            e.printStackTrace();
//        } catch (SQLException e) {
//            e.printStackTrace();
//        }
//    }

//从XML文件中读取配置
public static Connection getConnection(){
Connection conn=null;
JdbcBean jdbc=XmlConfigReader.getInstance().getJdbeanBean();
try {
Class.forName(jdbc.getDriver());
conn=DriverManager.getConnection(jdbc.getUrl(), jdbc.getUsername(),jdbc.getPassword());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
有时候我们想取得Connection的单实例,又不会影响到其安全性,我们可以通过线程ThreadLocal来对Connection进行管理:
package com.common.db;import java.sql.Connection;/*** 线程管理* @author Administrator**/
public class ConnectionManager {//使用线程变量对Connection进行管理private static ThreadLocal<Connection> local=new ThreadLocal<Connection>();public static Connection getConnection(){Connection conn=local.get();if(conn==null){conn=DbUtil.getConnection();local.set(conn);}return conn;}public static void main(String[] args) {Connection conn1=ConnectionManager.getConnection();Connection conn2=ConnectionManager.getConnection();Connection conn3=DbUtil.getConnection();Connection conn4=DbUtil.getConnection();System.out.println(conn1==conn2);//trueSystem.out.println(conn3==conn4);//false}
}
这样,数据库操作的公共类基本上实现了,大家在项目中就可以进行调用了,当然,还有一些基本的流的关闭和事物的处理,代码如下:
       public static void close(Connection conn) {if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}public static void close(Statement pstmt) {if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}}public static void close(ResultSet rs ) {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}}public static void beginTransaction(Connection conn) {try {if (conn != null) {if (conn.getAutoCommit()) {conn.setAutoCommit(false); //手动提交}}}catch(SQLException e) {}}public static void commitTransaction(Connection conn) {try {if (conn != null) {if (!conn.getAutoCommit()) {conn.commit();}}}catch(SQLException e) {}}public static void rollbackTransaction(Connection conn) {try {if (conn != null) {if (!conn.getAutoCommit()) {conn.rollback();}}}catch(SQLException e) {}}public static void resetConnection(Connection conn) {try {if (conn != null) {if (conn.getAutoCommit()) {conn.setAutoCommit(false);}else {conn.setAutoCommit(true);}}}catch(SQLException e) {}}
												

常用公共类代码一之数据库的连接相关推荐

  1. 用代码建立与数据库的连接 c#连sqlserver

    用代码建立与数据库的连接 c#连sqlserver 步骤 导入命名空间 using System.Data.SqlClient; 获取连接字符串 获取方式 让visual连接sqlserver数据库_ ...

  2. java处理图片的所有类_JAVA处理图片常用公共类

    //检测图片宽高 public static Map getPicWH(String imagePath) { Map mp = new HashMap(); File _file = new Fil ...

  3. C#连接达梦数据库基础功公共类

    c#程序访问达梦数据库 1.准备数据库驱动 达梦数据库安装完成后路径一般为:C:\dmdbms 找到  C:\dmdbms\drivers\dotNet\DmProvider: 我选择为.net 4. ...

  4. 应用程序 mysql 连接_学生信息管理系统之四:实现应用程序与数据库的连接

    我们通过JDBC实现Java应用程序与数据库的连接. 类ConnectionManagr完成与数据库的连接.关闭等基本操作. 1. 新建类文件ConnectionManagr.java,所属包为com ...

  5. mysql的配置以及后端数据库的连接

    mysql配置 上次配置好了tomcat,现在已经可以进行后端的编写了,但是看了很久,毕设需要的后端凑个数据库就够了,所以剩下的就是配置mysql了,前面听朋友说配置tomcat挺麻烦的,但是仔细看看 ...

  6. Python MySQL数据库的连接以及基本操作

    Python MySQL数据库的连接以及基本操作 一.数据库的连接 1.直接连接 2.连接池连接 二. 数据库的基本操作 1.执行函数 2.创建数据表 3.删除表 4.插入函数 6.删除函数 7.状态 ...

  7. 常用公共代码二之分页代码的实现

    在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...

  8. 【学习笔记】JDBC:java提供的专门操纵数据库的API JDBC驱动程序的类型 JDBC常用的类与接口

    JDBC技术 JDBC的全称是Java DataBase Connectivity,是一套面向对象的应用程序接口,指定了统一的访问各种关系型数据库的标准接口,JDBC是一种底层的API,因此访问数据库 ...

  9. java常用的接口和类的说明,Java程序连接数据库的常用的类和接口介绍

    编写访问数据库的Java程序还需要几个重要的类和接口. DriverManager类 DriverManager类处理驱动程序的加载和建立新数据库连接.DriverManager是java.sql包中 ...

最新文章

  1. 土豆上的小霉菌引发百万人死亡和逃难,却造就全球7千万后裔
  2. 孩子斗图老失败,多半是没看这篇博客
  3. aws sqs_在Spring中将AWS SQS用作JMS提供程序
  4. Spring REST:异常处理卷。 1个
  5. Could not load oracle/sql/converter_xcharset/lx20354.glb.
  6. [转载] 05 Numpy排序搜索计数及集合操作
  7. 选择排序SelectSort
  8. Linux 加入域的那些事儿!
  9. 2022版全国各地mapinfo格式电子地图及mapinfo二次开发
  10. selenium模拟登陆LinkedIn
  11. python 抖音短视频 去水印_如何去除抖音快手等短视频平台的水印?(工具+原理)...
  12. 华为笔试——C++平安果dp算法
  13. public static void main解释
  14. dva的用法_dva基本用法
  15. 戴尔灵越系列服务器是什么,戴尔灵越系列哪个好-2021戴尔灵越系列型号选购推荐...
  16. html 禁止触摸事件,html5的触摸事件
  17. 海底光缆是如何铺设出来的?
  18. 酒店市场消费趋势洞察报告
  19. 人口密度修正后的全球疫情热力图,看各国疫情严重程度
  20. 机器人对话常用语模板_世界首个机器人观音在岛国问世,请问AI开光还会远吗?...

热门文章

  1. photoshop cc2017全套视频课程 从基础到实战案例PS海报-王诚-专题视频课程
  2. postgresql常用操作指令
  3. 基于Quartus Prime的NiosII基础开发流程
  4. XC3071充电IC(耐高压,带OVP)
  5. GANs:生成对抗网络系列及应用
  6. L1 正则化和L2正则化
  7. Oracle数据库查询数据语法
  8. 数据结构严蔚敏代码合集 严书数据结构代码实现 可直接运行 持续更新by myself
  9. 程序员必备的思维能力:结构化思维
  10. python time localtime()