JSP第八课:网上商城后台--商品管理开发

一、项目开发通用化

1、将className,url,user、password常用又不变值,定义为常量,编写到一个类(Constants)中

package mybean.util;

public class Constants {
    public static String DriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    public static String url="jdbc:sqlserver://localhost:1433; Database=ebuy";
    public static String uid="sa"; 
    public static String pwd="123456";

//数据库名,用户名,密码,url有所不同
}

2、创建JDBCTool类,编写连接数据库、关闭连接,实现复用性

package mybean.util;
import java.sql.*;
public class JDBCTool {
public static Connection getConnection()
    {
        Connection conn=null;
        
            try {
                Class.forName(Constants.DriverName);
                conn=DriverManager.getConnection(Constants.url,Constants.uid,Constants.pwd);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
 
    
    return conn;
    }
}


拓展:通过编写一个通用的方法,在不修改源程序的情况下,可以获取任何数据库的连接

解决方案:将相关值放入配置文件中,通过修改配置方法实现和具体的数据解耦

(1)在src文件夹下新建文件(file),jdbc.properties

className=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://10.40.43.202:1433;Database=ebuy
user=shopping
password=shopping

(2)mybean.util包下新建JDBCTool类

package mybean.util;
import java.util.*;

import mybean.*;
import java.sql.*;

import java.io.*;;

public class JDBCTool {
    /*
     * 编写 一个通用的方法,在不修改源程序的情况下,可以获取任何数据库的连接
     */
    public Connection getConnection() throws Exception{
        Connection conn=null;
    
        String className=null;
        String url=null;
        String user=null;
        String password=null;
        
        //读取类路径下的jdbc.properties文件输入流
        InputStream in=getClass().getClassLoader().getResourceAsStream("jdbc.properties");
        //创建properties对象
        Properties properties=new Properties();

        //加载in对象输入流
        properties.load(in);

            /加载字符串
        className=properties.getProperty("className");
        url=properties.getProperty("url");
        user=properties.getProperty("user");
        password=properties.getProperty("password");
        
        
        
        
        Properties  info=new Properties();
        info.put("user", user);
        info.put("password",password);
        //方法 1
//        Driver driver=(Driver)Class.forName(className).newInstance();
//        conn=driver.connect(url, info);

        
        //方法2
        Class.forName(className);//加载数据驱动
        conn=DriverManager.getConnection(url,user,password);

       

        return conn;
        
    }
    
}


本文出自 “学而不思则罔” 博客,请务必保留此出处http://dyzyxy.blog.51cto.com/944775/1623429

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。