java连接数据库增、删、改、查工具类

  • 格式:docx
  • 大小:22.13 KB
  • 文档页数:46

java连接数据库增、删、改、查工具类

java连接数据库增、删、改、查工具类

这篇文章主要介绍了java连接数据库增、删、改、查工具类,需要的朋友可以参考下

java连接数据库增、删、改、查工具类

数据库操作工具类,因为各厂家数据库的分页条件不同,目前支持Mysql、Oracle、Postgresql的分页查询

在Postgresql环境测试过了,其他数据库未测试。

sql语句需要使用预编译形式的

复制代码代码如下:

packagedb;

ng.annotation.ElementType;

ng.annotation.Retention;

ng.annotation.RetentionPolicy;

ng.annotation.Target;

ng.reflect.Field;

importjava.sql.Connection;

importjava.sql.Date;

importjava.sql.Driver;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.sql.Time;

importjava.sql.Timestamp;

importjava.util.ArrayList;

importjava.util.List;

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

importjavax.naming.NamingException;

importjavax.sql.DataSource;

/

数据库查询工具类

使用预编译的sql

@authorXueLiang

/

publicclassDBUtil{

privatestaticStringdriver;

privatestaticDataSourceds=null;

privatestaticStringurl="jdbc:postgresql://192.168.56.101/db";

privatestaticStringuser="test";

privatestaticStringpassword="12345678";

static{

try{

Class.forName("org.postgresql.Driver");

//ds=(DataSource)SpringContextUtil.getBean("dataSource");

}catch(Exceptione){

e.printStackTrace();

}

}

/

建立连接

@returnconConnection

@throwsException

/

privatestaticConnectiongetConnection()throwsException{

Connectionconn=DriverManager.getConnection(url,user,password);

//Connectionconn=ds.getConnection();

Driverd=DriverManager.getDriver(conn.getMetaData().getURL());

driver=d.getClass().getName();

returnconn;

}

/

关闭连接

@paramconn

@paramstmt

@parampreStmt

@paramrs

@throwsSQLException

/

privatestaticvoidreplease(Connectionconn,Statementstmt,ResultSetrs)throwsSQLException{

if(rs!=null){

rs.close();

rs=null;

}

if(stmt!=null){

stmt.close();

stmt=null;

}

if(conn!=null){

conn.close();

conn=null;

}

}

/

利用正则表达式,获得SELECTSQL中的列名

@paramsql

@return

/

privatestaticListgetColumnsFromSelect(Stringsql){

ListcolNames=newArrayList();

//取出sql中列名部分

Patternp=pile("(?i)select\\s(.?)\\sfrom.");

Matcherm=p.matcher(sql.trim());

String[]tempA=null;

if(m.matches()){

tempA=m.group(1).split(",");

}

if(tempA==null){

returnnull;

}

Stringp1="(\\w+)";

Stringp2="(?:\\w+\\s(\\w+))";

Stringp3="(?:\\w+\\sas\\s(\\w+))";

Stringp4="(?:\\w+\\.(\\w+))";

Stringp5="(?:\\w+\\.\\w+\\s(\\w+))";

Stringp6="(?:\\w+\\.\\w+\\sas\\s(\\w+))";

Stringp7="(?:.+\\s(\\w+))";

Stringp8="(?:.+\\sas\\s(\\w+))";

p=pile("(?:"+p1+"||"+p2+"||"+p3+"||"+p4

+"||"+p5+"||"+p6+"||"+p7+"||"+p8+")");

for(Stringtemp:tempA){

m=p.matcher(temp.trim());

if(!m.matches()){

continue;

}

for(inti=1;i<=m.groupCount();i++){

if(m.group(i)==null||"".equals(m.group(i))){

continue;

}

colNames.add(m.group(i));

}

}

returncolNames;

}