JDBCUtil
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成
---------来自百度百科
为了避免每次操作数据库都需要写很多代码,可以考虑为每个数据库提供一个工具类,后面直接调用即可
如下为JDBC连接MySQL的步骤:
1.导入连接器的包,可以在MySQL的官网上下载到相应的包,我这里用的是:
mysql-connector-java-5.1.7-bin.jar
2.使用配置文件获取连接对象:
2.1在src文件夹下创建配置文件properties:
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/test //"test"表示正在使用的数据库的名字为test
name=root
password=root //自己设置的用户名和密码
2.2在工具类的代码中创建properties的对象,并使用类加载器去读取src下的properties文件
public class JDBCUtil {
//在这里静态构建变量是因为后面创建连接对象的时候会用到
static String driverClass = null;
static String url = null;
static String name = null;
static String password= null;
static{
try {
//1. 创建一个属性配置对象
Properties properties = new Properties();
//在java工程中可以直接文件输入流来读取这个properties,但是web工程中不行(两者相对路径的定义不一样)
//InputStream is = new FileInputStream("jdbc.properties");
//使用类加载器,去读取src底下的资源文件。 后面在servlet
InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
//导入输入流。
properties.load(is);
//读取属性
driverClass = properties.getProperty("driverClass");
url = properties.getProperty("url");
name = properties.getProperty("name");
password = properties.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
}
2.3获取连接对象
public static Connection getConn(){
Connection conn = null;
try {
Class.forName(driverClass);
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。
conn = DriverManager.getConnection(url, name, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
3.释放资源:
//释放资源两种方法,调用的时候根据参数不同方法重载
public static void release(Connection conn , Statement st , ResultSet rs){
closeRs(rs);
closeSt(st);
closeConn(conn);
}
public static void release(Connection conn , Statement st){
closeSt(st);
closeConn(conn);
}
private static void closeRs(ResultSet rs){
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
private static void closeSt(Statement st){
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
st = null;
}
}
private static void closeConn(Connection conn){
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
在正常使用过程中一般步骤为:
通过自定义的JDBCUtil包来创建连接对象->创建PreparedStatement对象,并处理sql语句->视情况将执行sql语句后的返回值做处理->用完立即关闭资源.
这里有几个易出错的点:
- 情况分web工程和java工程;web工程中导入jar包是直接导入在WebContent->WEB-INF->lib下面的,这种情况不需要buildPath; 但是在java工程中需要导包至src文件夹下的lib文件夹中,并手动buildPath.
- 使用properties加载自定义配置文件的时候文件路径的问题,在这里推荐使用类加载器classloader.
以上内容纯属学习心得,如有误解,还望大神们帮纠正