一、JDBC开发的编写步骤
1、搭建开发环境:
1.1建立数据库
1.2导入数据库的驱动jar包
2、编码步骤
a、注册驱动 DriverManager
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
b、建立连接 Connection
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day12", "root", "sorry");
c、建立发送sql的对象并发送sql Statement
Statement stmt = conn.createStatement()
d、得到结果 ResultSet
ResultSet rs = stmt.executeQuery(sql);
e、关闭资源 close()
二、DriverManager详解
1、不提倡使用DriverManager.registerDriver(new com.mysql.jdbc.Driver());注册驱动
原因:1、会对具体的驱动类产生依赖
2、会将驱动类注册两遍
解决办法:Class.forName("com.mysql.jdbc.Driver");
2、连接Mysql数据库的url的写法
如果连接的本机的默认端口(3306)上的mysql,可以简写为
jdbc:mysql:///day12?useUnicode=true&characterEncoding=UTF-8
3、Statement
数据库中的语句的分类:
DDL:Data Definition Lanaguage.数据定义语言。操作对象 数据库、表的结构
CREATE DROP ALTER
DML:Data Manager Language。数据操作语言。操作对象是表中的记录
INSERT DELETE UPDATE
DQL:Data Query Lanaguage.数据查询语言。操作对象是表中的记录
SELECT
DCL:Data Control Lanaguage。数据控制语言。比如权限
GRANT
a、executeQuery(String?sql) 用于向数据发送查询语句。sql只能是DQL语句
返回的是ResultSet类型的结果
b、executeUpdate(String?sql):用于向数据库发送insert、update或delete语句
sql只能是DML语句。
返回的是int类型的结果。代表你的语句影响到的行数
c、execute(String sql):用于向数据库发送任意sql语句。DDL、DML、DQL、DCL全部能搞
返回是一个boolean类型的结果,但是它并不代表着语句执行是否成功。
4、ResultSet
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面
三、PreparedStatement
1、作用
a、防范sql注入
b、预编译sql语句。提高效率
c、对于数据的参数提供了方便的设置方式
一般情况都用PreparedStatement