好久没用过JDBC了,今天突然要用到这个知识点,突然感觉不会写了。虽然网上很多,但是还是自己做下总结:
链接JDBC无非就是那几个步骤:
1. 加载JDBC驱动程序:
这里需要注意的是:不同的数据库有不同的驱动程序,这里拿mysql数据库来举例:
驱动类就需要该数据库的相应jar包:
mysql:com.mysql.jdbc.Driver 所对应的jar为:mysql-connector-java-3.1.12-bin.jar
oracle : oracle.jdbc.driver.OracleDriver 所对应的jar为:ojdbc14.jar
2. 获取JDBC连接:
一般第一步和第二部是在一起的。可以写成一个获取连接的工厂类,这个工厂类的功能就是获取连接。
代码如下:
package com.vaolan.util.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.vaolan.util.file.ReadConfigFile;
/**
* 获取jdbc链接对象工具类
* @author xiaoming
*
*/
public class ConnectFactory {
protected static Logger logger;
//读取jdbc配置文件对象
protected static ReadConfigFile jdbcConfig;
protected static String URL;
protected static String USERNAME;
protected static String PASSWORD;
static{
init();
}
public static void init(){
jdbcConfig = new ReadConfigFile("jdbc.properties");
logger = Logger.getLogger(ConnectFactory.class);
URL = jdbcConfig.getValue("URL");
USERNAME = jdbcConfig.getValue("USERNAME");
PASSWORD = jdbcConfig.getValue("PASSWORD");
}
public static Connection getConnection(){
Connection conn = null;
try {
//1.注册驱动
Class.forName(jdbcConfig.getValue("CLASSDRIVER"));
//第二步:获取连接
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
logger.error("找不到驱动程序类 ,加载驱动失败。" , e);
} catch (SQLException e) {
logger.error("数据库连接失败,获取连接失败。" , e);
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = ConnectFactory.getConnection();
System.out.println(conn);
}
}
这里我用的是读取配置文件的方法获取一些数据库所需要的参数。怎么样读取properties文件请参考我的
http://blog.youkuaiyun.com/xm_zhou/article/details/17404367 这篇博客。
配置文件如下:jdbc.properties
CLASSDRIVER=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost:3306/electricity
USERNAME=用户名
PASSWORD=密码
这里要说明的是 URL :每个数据库中URL的写法都不一样, 在oracle 中的 URL 表达为:jdbc:oracle:thin:@localhost:1521:orcl
利用读取配置文件来获取连接数据库的好处,我就不说了吧。两个字灵活。
测试类:
public static void main(String[] args) {
Connection conn = ConnectFactory.getConnection();
System.out.println(conn);
}
结果:com.mysql.jdbc.Connection@169e11
如果运行时不报错,并且出现类似这样额结果说明你已经成功的获取连接对象了。
下面就是利用连接对象操作数据库和连接在不使用时的关闭问题了。
注意:这里获取对象的方法使用的是静态的方法,这样做的好处了,在想要获取连接时,不需要这个工厂类的对象了,因为静态的东西,是依赖类而不是依赖对象而存在的。
一般把成员变量的初始化写在方法里,这样容易管理我排查错误。
以上都是JDBC的基础,最近在尝试写各种工具类,希望对大家有所帮助。