/************************************************************
Copyright(C),1988-1999,HuaweiTech.Co.,Ltd.
FileName:JDBCUtil.java
Author:Light
Version:version 1.0
Date: /7/12
Description: jdbc链接数据库的封装//模块描述
Version: 通过模块化实现jdbc连接数据库操作,减少开发代码关于数据库操作的编写量//版本信息
FunctionList: //主要函数及其功能
1.getConnection 进行数据库的链接
2.close 进行数据库的关闭
3.executeUpdate 执行数据的增删改
4.executeQuery执行数据的查询
History:
//历史修改记录
David96/10/121.0buildthismoudle
***********************************************************/public classJDBCUtil {//链接地址,设置编码可用且为utf-8
public static String URL="jdbc:mysql://192.168.80.131:3306/db1?useUnicode=true&characterEncoding=utf8";//数据库用户名
public static String USER="root";//数据库密码
public static String PWD="123456";/**进行数据库的链接*/
public staticConnection getConnection(){
Connection con=null;try{//加载驱动
Class.forName("com.mysql.jdbc.Driver");//创建链接
con=DriverManager.getConnection(URL, USER, PWD);
}catch(ClassNotFoundException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(SQLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}//返回连接
returncon;
}/**数据库关闭*/
public static voidClose(Connection con,PreparedStatement pstmt,ResultSet rs){try{//判断是否被操作
if(rs!=null)
rs.close();if(pstmt!=null)
pstmt.close();if(con!=null)
con.close();
}catch(SQLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}/**创建数据库执行操作,返回受影响的行数
*@param String sql
*@param Object params
*@return int result*/
public static int executeUpdate(String sql,Object... params){//创建链接
Connection con=getConnection();
PreparedStatement pstmt=null;int result=0;try{//预编译sql语句,防止sql注入
pstmt=con.prepareStatement(sql);//传递参数,如果参数存在
if(params!=null){//进行循环传参
for(int i=0;i
pstmt.setObject(i+1, params[i]);
}
}//执行sql语句,返回受影响行数
result=pstmt.executeUpdate();
}catch(SQLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}finally{
Close(con,pstmt,null);
}returnresult;
}/**进行数据的查询,通过自建泛型RowMap,进行数据类型的定义
*@param String sql
*@param RowMap T
*@param Object params
*@return list*/
public static List executeQuery(String sql,RowMap rowMap,Object... params){//创建泛型List
List list=new ArrayList<>();//创建链接
Connection con=getConnection();
PreparedStatement pstmt=null;
ResultSet rs=null;try{//绑定sql语句
pstmt=con.prepareStatement(sql);//循环穿参
if(params!=null){for(int i=0;i
pstmt.setObject(i+1, params[i]);
}
}//执行语句,用结果集接收
rs=pstmt.executeQuery();while(rs.next()){//利用自建泛型实现数组的添加
T t=rowMap.rowMapping(rs);
list.add(t);
}
}catch(SQLException e) {//TODO Auto-generated catch block
e.printStackTrace();
}finally{
Close(con,pstmt,rs);
}returnlist;
}
//使用示例函数public static intupdate(){return executeUpdate("insert into student(name,age,sex) values(?,?,?)","姓名",12,"男");