数据库连接在日常的项目中用的是比较多的,其语法也是比较简单的,但是能够很全面的规范化的写出来也是不容易的。下面就简单记下,以备日后复用:
package com.easyteam.yc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* <p>title DaoUtils
* <p>Description:mysql连接的规范化代码 <P>
* <P>Company:com.easyteam.cn
* @author yc
* @date 2016-6-28 下午05:10:37
*
*/
public class DaoUtils {
static String DriverName="com.mysql.jdbc.Driver";
static String url="jdbc:mysql://localhost:3306/test";
static String username="root";
static String password="1";
//静态代码块,只执行一次,因為只需要加載一次就好,提高效率
static{
try {
Class.forName(DriverName);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public static Connection getConnection(){
Connection con=null;
PreparedStatement psmt=null;
ResultSet rs=null;
try {
con=DriverManager.getConnection(url, username, password);
return con;
} catch (SQLException e) {
throw new RuntimeException(e);
}finally{
if(rs!=null)//这个地方是所以要判断循环,就是上面有可能有异常,那么不判断可能就会出现空指针异常
try {
rs.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
if(psmt!=null)
try {
psmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
if(con!=null)
try {
con.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
}
测试代码:
ackage com.easyteam.yc;
import java.sql.Connection;
import org.junit.Test;
/**
* <p>title Test
* <p>Description:测试使用 <P>
* <P>Company:com.easyteam.cn
* @author yc
* @date 2016-6-28 下午05:38:41
*
*/
public class TestDemo {
@Test
public void fun(){
DaoUtils du=new DaoUtils();
Connection con=du.getConnection();
System.out.println(con);
}
}