您的位置:首页 > 编程语言 > Java开发

java JDBC通用BaseDao升级版0.2

2016-04-01 12:57 375 查看
,此次升级为了解决链接数据库时每次都要传用户名和密码的烦恼,添加了…obj表示数组和变量。(JDK1.5增加功能)

package com.sun.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Map;

public class BaseDao {
final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String ip="localhost";
private String databaseName;
private String user="sa";
private String password="123456";
/**
* 用于构建连接数据库
* @param ip
*          数据库地址
* @param databaseName
*                  数据库的库名
* @param user
*          数据库登陆用户名
* @param password
*              数据库密码
*/
public BaseDao(String ip, String databaseName, String user, String password) {
super();
this.ip = ip;
this.databaseName = databaseName;
this.user = user;
this.password = password;
}
/**
* 这个构造用于连接本机的数据库
* @param databaseName :数据库名
*/
public BaseDao(String databaseName) {
super();
this.databaseName = databaseName;
}
/**
* 用于创建连接对象
* @return
*          Connection
* @throws SQLException
*/
private Connection createConnection() throws SQLException{

return DriverManager.getConnection("jdbc:sqlserver://"+ip+":1433;database="+databaseName,user,password);

}
/**
* 此方法只能用于查询
* @param sql
*          :查询sql语句
* @param obj
*          :SQL语句给值
* @return  :list:
*          在list 里面装的MAP:在map中放的是一行表数据
*/
public ArrayList<Map<String, Object>> excuteQuery(String sql,Object ...obj)
{
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
Class.forName(driver);
con=createConnection();
ps=con.prepareStatement(sql);
if(obj!=null&& obj.length>0)
{
for (int i = 0; i < obj.length; i++) {

ps.setObject(i+1, obj[i]);
}
}
rs=ps.executeQuery();
ArrayList<Map<String, Object>> list=ResultSetToList.resultSetToList(rs);

if(list.size()>0)
{
return list;

}else{
return null;
}

}catch(Exception e){
e.printStackTrace();
return null;
}finally{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 此方法只能执行增删改
* @param sql
*           :查询sql语句
* @param obj
*          :SQL语句给值
* @return
*           真假:
*/
public boolean excuteUpdate(String sql,Object ...obj)
{
Connection con=null;
PreparedStatement ps=null;
try{
Class.forName(driver);
con=createConnection();
ps=con.prepareStatement(sql);
if(obj!=null&& obj.length>0)
{
for (int i = 0; i < obj.length; i++) {

ps.setObject(i+1, obj[i]);
}
}
int a=ps.executeUpdate();

if(a>0)
{
return true;

}else{
return false;
}

}catch(Exception e){
e.printStackTrace();
return false;
}finally{

try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

}
``


package com.sun.dao;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Map;

public class ResultSetToList {

public static ArrayList
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: