目录
所有Java操作关系型数据库,无论是哪种数据库,套路都是一样的,这个代码一定要熟练掌握,JPA,MyBatis都是JDBC的封装
根据IDEA找JDBC的错误
学会查看IDEA错误提升
比如我们写sql语句时,把列名称给弄错了
错误提示:
这些灰色的错误信息不用管,都是第三方包里面程序的错误,别人代码的错误栈、不用管
重点看蓝色部分,提示你第一次出错的位置,这样就可以往上找。
根据这信息往上找,找到了错误源,发现是列名称写错了。
JDBC操作步骤总结
JDBC常用接口和类
获取数据源有两种方式
一个是DataSource方式(实际用到的)推荐
另外一种是DriverManager(不推荐使用)
以上两种方式的区别是:
1. DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源 时,通过connection.close()都是关闭物理连接。
2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接 是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将 Conncetion连接对象回收。
简单的说:DataSource的好处在于, 在内部创建Connection对象的连接池
“池”的概念:最主要的目的就是 资源的重复利用
当一个Connection对象调用close方法之后它不是真正关闭,这个对象会被DataSource回收,进入连接池,
若此时有别的用户需要建立连接,不是创建一个新的连接,若此时连接池中有空闲连接,直接使用此连接
注释:数据库连接的建立和销毁操作还是很耗时耗资源
这就是DataSource的优势所在
具体执行SQL的对象也有两种方式
一个是PreparedStatement对象(推荐使用)
另外一个是Statement对象
Statement 执行的语句一般都是 select * from 这样不带条件的
PreparedStatement 一般执行带筛选条件的
而且PreparedStatement
上面的程序被执行一遍之后, 这个sql语句就会保存到mysql系统中
这个SQL语句的语法和词法分析都已经执行过,下—次再使用时,只是简单的替换内容即可
比如这次我查编号为 2 的人名字,下次写成 3时,mysql系统里面已经有了,只是简单的换一下里面的数字,其他程序都有执行过的记录,这样速度会很快
反而 Statement 是真正的每次都需要在mysql数据库重新编译执行一遍,很慢。
PreparedStatement 的优势总结: