1.PreparedStatement对象
Statement对象编译SQL语句时,如果SQL语句有变量,就需要使用分隔符来隔开,如果变量非常多,就会使SQL变得非常复杂。PreparedStatement可以使用占位符,简化sql的编写
Statement会频繁编译SQL。PreparedStatement可对SQL进行预编译,提高效率,预编译的SQL存储在PreparedStatement对象中
PreparedStatement防止SQL注入。【Statement通过分隔符'++',编写永等式,可以不需要密码就进入数据库】
2.批处理
当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条发送执行,采用批处理以提升执行效率
批处理有两种方式:
Statement
PreparedStatement
以下代码是以Statement方式实现批处理
以下方式以PreparedStatement方式实现批处理
3.处理大文本和二进制数据
clob用于存储大文本
blob用于存储二进制数据
MYSQL
MySQL存储大文本是用Test【代替clob】,Test又分为4类
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
下面用JDBC连接MySQL数据库去操作大文本数据和二进制数据
Oracle
下面用JDBC连接Oracle数据库去操作大文本数据和二进制数据
对于JDBC连接Oracle数据库操作CLOB数据,我就不再重复了,操作跟BLOB几乎相同
4.获取数据库的自动主键列
为什么要获取数据库的自动主键列数据?
应用场景:
有一张老师表,一张学生表。现在来了一个新的老师,学生要跟着新老师上课。
我首先要知道老师的id编号是多少,学生才能知道跟着哪个老师学习【学生外键参照老师主键】。
5.调用数据库的存储过程
{call <procedure-name>[(<arg1>,<arg2>, ...)]}
如果是Output类型的,那么在JDBC调用的时候是要注册的。如下代码所示:
参考资料:
如果文章有错的地方欢迎指正,大家互相交流