无线&移动互联网技术研发

换位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

一个通用性还不错的JDBC

Posted on 2009-05-19 09:42 Gavin.lee 阅读(303) 评论(0)  编辑  收藏 所属分类: JDBC
这个DB Bean 用起来还不错。挺好的,我在project2中就用这个,感觉很好用。性能也还不错。比我上一次发布的明显要好的多:


db.properties:
driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;databaseName=bank;
username=sa
password=pass


load db.properties into program:
package commons.util;

import
 java.util.ResourceBundle;
/**
 * @descripte load resource
 * 
@author Gavin.lee
 * @date 2009-5-19上午09:49:32
 * 
@version
 1.0
 *
 
*/

public class ResourceLoader {
    
private
 ResourceBundle resBundle;
    
    
public ResourceLoader(String resourceName) 
{
        resBundle 
=
 ResourceBundle.getBundle(resourceName);
    }

    
    
public String getString(String key) {
        
return
 resBundle.getString(key);
    }

}


connection provider:
package commons.util;

import java.sql.*
;
/**
 * @descripte connection provider
 * 
@author Gavin.lee
 * @date 2009-5-19上午09:49:08
 * 
@version
 1.0
 *
 
*/

public class ConnectionProvider {
    
private
 String driverClassName;
    
private
 String url;
    
private
 String username;
    
private
 String password;
    
    
public ConnectionProvider() 
{
        ResourceLoader loader 
= new ResourceLoader("db"
);
        
this.driverClassName = loader.getString("driverClassName"
);
        
this.url = loader.getString("url"
);
        
this.username = loader.getString("username"
);
        
this.password = loader.getString("password"
);
    }

    
    
public Connection getConnection() {
        
return this
.getsqlconnection();
    }

    
    
private Connection getsqlconnection() {
        Connection conn 
= null
;
        
try 
{
            Class.forName(driverClassName);
            conn 
=
 DriverManager.getConnection(url,username, password);
        }
 catch(Exception e) {
            e.printStackTrace();
        }

        
return conn;
    }

}



example:
ConnectionProvider cp = new ConnectionProvider();
/**
     * 开户的帐号通过验证后就通过此方法向表中插入新的记录。
     * 
     
*/

    
public boolean addAccount(Account account){
        String sql 
= "insert into account(accountID,password,name,sex,idcard,balance) values(?,?,?,?,?,?)"
;
        
try
{
            Connection conn 
=
 cp.getConnection();
            PreparedStatement ps 
=
 conn.prepareStatement(sql);
            ps.setString(
1
,account.getAccountID());
            ps.setString(
2
, account.getPassword());
            ps.setString(
3
,account.getName());
            ps.setString(
4
,account.getSex());
            ps.setString(
5
, account.getIdcard());
            ps.setDouble(
6
, account.getBalance());
            ps.execute();
            
            ps.close();
            conn.close();
            
return true
;
        }
catch(Exception e){
            e.printStackTrace();
        }

        
return false;
    }




/**
     * 删除记录
     
*/

    
public boolean deleteAccount(String accountID){
        Connection conn 
=
 cp.getConnection();
        String sql 
= "delete account where accountID=?"
;        
        
try 
{
            PreparedStatement ps 
= conn.prepareStatement(sql);//PrepareStatement接口: 用户封装SQL语句

            ps.setString(1,accountID);
            
if(ps.executeUpdate() != 0)
{//对于DML语句,executeUpdate返回的是影响的行数
                return true;
            }

            ps.close();
            conn.close();                
        }
 catch (SQLException e) {
            e.printStackTrace();
        }
        
        
return false
;
    }



/**
     * 用于客户修改密码,转账,存取款,冻结,解冻
     
*/

    
public boolean updateAccount(Account account){
        String sql 
= "update account set password=?,balance=?,isfreezed=? where accountID=?"
;
        
try
{
            Connection conn 
=
 cp.getConnection();
            PreparedStatement ps 
=
 conn.prepareStatement(sql);
            ps.setString(
1
, account.getPassword());
            ps.setDouble(
2
, account.getBalance());
            
/* isfreezed */

            ps.setInt(
3,account.getIsfreezed());
            ps.setString(
4
,account.getAccountID());
            ps.execute();
            ps.close();
            conn.close();
            
return     true
;
        }
catch(Exception e){
            e.printStackTrace();
        }

        
return false;
    }


//这个在登陆的时候就给初始化bean的信息
public Account findAccountById(String accountID){
        Connection conn 
=
 cp.getConnection();
        Account account 
= new
 Account();
        String sql 
= "select * from account where accountID=?"
;
        
try

            PreparedStatement ps 
=
 conn.prepareStatement(sql);
            ps.setString(
1
,accountID);
            ResultSet rs 
= ps.executeQuery();//rs是满足条件的查询结果集        

            if(rs.next()){//初始状态指向结果集第一条前
                account.setAccountID(rs.getString("accountID"));
                account.setPassword(rs.getString(
"password"
));
                account.setName(rs.getString(
"name"
));
                account.setSex(rs.getString(
"sex"
));
                account.setIdcard(rs.getString(
"idcard"
));
                account.setBalance(rs.getDouble(
"balance"
));
                account.setIsfreezed(rs.getInt(
"isfreezed"
));
                
return
 account;
            }

            rs.close();
            ps.close();
            conn.close();
            
//return account;
        }
catch(Exception e){
            e.printStackTrace();
        }

只有注册用户登录后才能发表评论。


网站导航: