JDBC:使用Java语言去操作关系型数据库的一套接口。
由于使用的是Mysql,导入相应的Mysql驱动:
使用具体包括以下一些步骤:
一、与sql数据库获取连接:
(1)使用DriverManager去获取数据库连接:
(2)使用DataSource来获取数据库连接:
为什么会出现数据库连接池技术?
数据库连接池怎么实现的?Sun公司提供了一套标准的接口DataSource。具体由第三方组织实现,比如Druid是阿里巴巴开发的一套数据库连接池,非常强大。
常见的数据库连接池
- DBCP
- C3P0
- Druid
数据库连接池Druid:进一步优化了JDBC。
Druid是阿里巴巴开源的一个数据库连接池实现,它不仅实现了JDBC规范中的DataSource接口,还提供了一些额外的功能和性能优化。
二、定义SQL语句
关于sql语句有很多问题需要注意的,是否需要参数以及参数如何传递给sql语句:
第一种方法是使用+进行字符串拼接,但是这种方式会存在sql注入。
第二种是使用占位符?,然后使用PreparedStatement对象的setXXX()方法传递参数,如pstmt.setString(1,brandName);
可以做到对sql语句进行预编译以及防止sql注入。
可以观察到参数需要一个一个传递的,很麻烦。
(1)查询:String sql = "select * from tb_brand";
(2)插入:String sql = "insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?)";
(3)修改:String sql = " update tb_brand\n" +
" set brand_name = ?,\n" +
" company_name= ?,\n" +
" ordered = ?,\n" +
" description = ?,\n" +
" status = ?\n" +
" where id = ?";
(4)删除:String sql = " delete from tb_brand where id = ?";
三、获取执行SQL语句的对象
有两种类型的对象,分别是Statement和PreparedStatement。
(1)Statement st = con.createStatement();
(2)PreparedStatement pst = con.prepareStatement(sql);
四、执行SQL语句
四、对返回结果进行处理
五、释放资源
所谓规范,就是自己定义了标准接口,做了如下抽象:用Connection代表和数据库的连接,用Statement执行SQL,用ResultSet表示SQL返回的结果,提供了对数据的便利。从Connection可以创建Statement,Statement执行查询得到ResultSet。
上面说的Connection、Statement、ResultSet都应该是接口,具体实现由各个数据库提供商提供。有了规范,可以通过统一的接口,访问多种类型的数据库,可随便切换数据库。