JdbcUtils工具类
1.为什么要对jdbc技术进行封装为工具类JdbcUtils?有什么好处?
- 在用java操纵数据库时,每次都要写java连接数据库的代码,一条sql语句伴随着大量连接数据库的java代码,这样会使代码冗余度高,代码的可读性和观赏性都变得很差,如果将通用的代码转换为静态方法—>封装成一个工具类JdbcUtils,这样每次需要什么功能只需要调用相应的方法,既提高了代码的复用性,降低了冗余度,又提高了程序的观赏性和可读性,提高了程序开发的效率。
2.采用哪种方式对对jdbc进行封装?
-
对jdbc进行封装方法有两种:
- 采用普通jdbc技术进行封装 - 采用数据库连接池进行封装(推荐使用)
博主采用的是第二种(采用的阿里巴巴提供的Druid-1.1.9版本:号称全世界连接效率更高,速度更快)。
3.对jdbc进行封装
采用连接池技术进行封装,需要准备一个配置文件并且需要导入Druid-1.1.9j.ar包。配置文件中包含连接数据库的一些必要数据;jar包存放在项目根目录下的lib目录。以我的为例:
-
打开eclipse,新建一个java项目,在根目录下新建一个文件夹,命名为lib,将jar包导入,并构建路径;
-
在根目录下新建一个文件,命名为jdbc.properties,里面包含如下信息:
##mysql
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/prac
user=root
password=root
maxActive=10
minIdle=1
maxWait=10000 -
在项目中新建一个package,然后在package里新建一个java文件,命名JdbcUtils.java.在类的头部声明需要的变量信息,如下:
private static String driverClass;//加载驱动时的路径 private static String url;//数据库的路径 private static String user;//数据库的登录名 private static String password;//数据据库的登录密码 /** * Druid连接池参数 */ private static int maxActive;//最大连接数量 private static int minIdle;//最小闲置数量 private static long maxWait;//最大等待时间 private static DruidDataSource dataSource;//声明连接池对象
-
从配置文件获取数据,并完成初始化操作:
//初始化信息 public static void init() { Properties prop = new Properties(); try { prop.load(new FileInputStream("src/jdbc.properties")); driverClass = prop.getProperty("driverClass"); url = prop.getProperty("url"); user = prop.getProperty("user"); password = prop.getProperty("password"); maxActive = Integer.parseInt(prop.getProperty("maxActive")); minIdle = Integer.parseInt(prop.getProperty("minIdle")); maxWait = Long.parseLong(prop.getProperty("maxWait")); dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); dataSource.setMaxActive(maxActive)