JDBC-C3P0、DRUID-Spring之间关系
- JDBC
是最基本的数据库连接方式,非常的原始,步骤非常的详细!(尽管代码量很大,但还是推荐初学去学,对于后面更高级的连接方式的立即有好处!)
public class JdbcDemo1
{
public static void main(String[] args) throws Exception {
//1.导入驱动jar包
//2.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1", "root", "123456");
//4.定义sql语句
String sql = "update stu set NAME = 'liuYang' where id = 1";
//5.获取执行sql的对象 Statement
Statement stmt = conn.createStatement();
//6.执行sql
int count = stmt.executeUpdate(sql);
//7.处理结果
System.out.println(count);
//8.释放资源
stmt.close();
conn.close();
}
}
- C3P0 【国外的】与 DRUID【阿里的国产的,常用!】
他们俩属于一个级别的,称为数据库连接池在我的理解上,他们相比于JDBC有如下几个好处:
/**
* c3p0的演示
*/
public class C3P0Demo1
{
public static void main(String[] args) throws SQLException {
//1.创建数据库连接池对象
DataSource ds = new ComboPooledDataSource();
//2.获取连接对象
Connection conn = ds.getConnection();
//3.打印
System.out.println(conn);
}
}
/**
*
* Druid演示
*/
public class DruidDemo
{
public static void main(String[] args) throws Exception {
//1.导入jar包
//2.定义配置文件
//3.加载配置文件
Properties pro = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.获取连接
Connection conn =ds.getConnection();
System.out.println(conn);
}
1).他们(C3P0和DRUID)可以绑定多个数据库连接,不是像JDBC那样只能用一个数据库;
2).他们的使用效率更高,JDBC每次用完一些东西(大家先这么理解)就释放掉了(也就是扔掉了),而他们使用完不是释放掉,而是存起来下次再用!所以使用效率更高!
3).拥有专属配置文件,连接数据库更方便些~
· Spring-JDBC
/**
* JdbcTemplate入门学习
*/
public class JdbcTemplateDemo1
{
public static void main(String[] args)
{
//1.导入jar包
//2.创建JDBCTemplate对象
JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
//3.调用方法
String sql = "insert into shiyi values(?,?)";
int count = template.update(sql,"刘鹏",39);
System.out.println(count);
}
}
好处:
一个更复杂的框架,但是只要把框架搭起来,连接数据库,取数据等操作会异常的快速!
甚至都不需要释放各部分,这个框架会自动释放!
坏处:
1)内部操作更不容易懂了,其实最底层还是JBDC那一套,不过人家给你封装的特别好,不需要写那么多东西了!
2)导入的jar包异常多