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