今天与大家分享几种方式与数据库建立连接
第一种:基础版
首先得有数据库,然后采用class.forname();加载驱动
通过connection接口创建连接对象
这种方法比较笨拙,当要使用另外的数据库时不方便修改
public void insertTest(){
Connection co =null;
Statement st = null;
try{
Class.forName("com.mysql.jdbc.Driver");
co = DriverManager.getConnection("jdbc:mysql://localhost:3306/huangguizhao", "root", "123456");
}catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
CloseUtils.closeAll(st,co);
}
第二种:使用properties接收关键路径
首先我们在工程目录下创建一个文本文件,里面放入数据库关键路径
这时候实例化properties对象,更具key获取对应的values值
static private String drive;
static private String usl;
static private String username;
static private String password;
static{
try {
Properties pre = new Properties();
pre.load(new FileInputStream("co.properties"));
drive = pre.getProperty("drivename");
usl =pre.getProperty("url");
username =pre.getProperty("username");
password =pre.getProperty("password");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
Class.forName(drive);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection Conn(){
Connection conn = null;
try {
conn = DriverManager.getConnection(usl, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
这是一个工具包,当我们要用这个数据库时,只需要调用这个工具包,让connection去接受即可完成数据库运用
使用properties接收的优点在于:使程序更灵活,以后变更数据库信息,只需更改配置文件
第三种:Dbcp连接池实现
将需要的jar导包放入lib文件中,然后建立连接
同时将dbcpconfig.properties文本放到工程目录下,
文本中的大致内容:
这时候我们只需要通过DataSource接口实现即可
static DataSource dataSource = null;
static{
Properties pre = new Properties();
try {
pre.load(new FileInputStream("dbcpconfig.properties"));
dataSource=BasicDataSourceFactory.createDataSource(pre);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
同样的我们需要创建一个方法去接收dataSource.getConnection();
当我们需要用到时,调用这个方法就可以
第四种:C3p0连接池实现
同样的我们需要通过Datasource这个接口,并且导入jar包
但是在这里需要注意,我们创建的文本文档必须放在 src/ 资源目录下,才能实现
private static DataSource dataSource = null;
static{
dataSource = new ComboPooledDataSource();
}
public static Connection connection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
代码相对简单,但注意使用条件