关于JDBC的一些使用参考

关于JDBC的一些使用参考

备份和还原

备份: mysqldump -u 用户名 -p 密码 数据库 > 文件名
还原:
登录使用数据库
use 数据库
source 文件名

设置事务回滚点

设置事务回滚点: savepoint 名字
回到回滚点: rollback to 名字

JDBC

JDBC的本质就是定义了一套操作所有关系型数据库(MySQL、Oracle等)的规则/接口。

乱码的处理

如果数据库出现乱码,可以指定参数: ?characterEncoding=utf8,表示让数据库以 UTF-8 编码来处理数据。
jdbc:mysql://localhost:3306/数据库?characterEncoding=utf8

释放资源

1) 需要释放的对象: ResultSet 结果集, Statement 语句, Connection 连接
2) 释放原则:先开的后关,后开的先关。 ResultSet  Statement  Connection
3) 放在哪个代码块中: finally 块

ResultSet接口中的方法

方法 描述
boolean next() 1) 游标向下移动 1 行
2) 返回 boolean 类型,如果还有下一条记录,返回 true,否则返回 false
数据类型 getXxx() 1) 通过字段名,参数是 String 类型。返回不同的类型
2) 通过列号,参数是整数,从 1 开始。返回不同的类型

常用数据类型转换表

SQL 类型 Jdbc 对应方法 返回类型
BIT(1) bit(n) getBoolean() boolean
TINYINT getByte() byte
SMALLINT getShort() short
INT getInt() int
BIGINT getLong() long
CHAR,VARCHAR getString() String
Text(Clob) Blob getClob getBlob() Clob Blob
DATE getDate() java.sql.Date 只代表日期
TIME getTime() java.sql.Time 只表示时间
TIMESTAMP getTimestamp() java.sql.Timestamp 同时有日期和时间

 java.sql.Date、 Time、 Timestamp(时间戳),三个共同父类是: java.util.Date

PrepareStatement的执行原理

Statement对象每执行一条sql语句,都会先将sql语句发送给数据库,数据库先编译sql,再执行。如果有1万条类似的sql语句,数据库需要编译1万次,执行1万次,效率低。
PrepareStatement会先将sql语句发送给数据库预编译。PrepareStatement会引用预编译后的结果,可以多次传入不同的参数给PrepareStatement对象,并执行。如果有1万条类似的sql语句,数据库只需要编译1次,传入1万次不同的参数并执行,减少了sql语句的编译次数,提高了执行效率。还可以有效防止sql注入问题,安全性更高。

JDBC事务处理

API

Connection 接口中与事务有关的方法 说明
void setAutoCommit(boolean autoCommit) 参数是 true 或 false
如果设置为 false,表示关闭自动提交,相当于开启事务
void commit() 提交事务
void rollback() 回滚事务

猜你喜欢

转载自www.cnblogs.com/shinl00/p/12014370.html