JDBC
1.本质:是官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
2.快速入门
1.导入驱动jar包
2.注册驱动
class.forname("")
3.获取数据库连接对象connection
Connection conn
4.定义sql
String sql
5.获取执行sql语句的对象statement
Statement stmt=conn.createStatement
6.执行sql,接收返回结果
int count=stmt.excute(sql)
7.处理结果
8.释放资源
stmt.close();
conn.close();
3.详解对象
1.DriverManager:驱动管理对象
1.注册驱动:告诉程序应该面向哪一个
2.获取数据库连接
getConnection (url,user,password)
jdbc:mysql://ip:端口号/数据库名称
2.Connection:数据库连接对象
1.功能
1.获取执行sql的对象
Statement createStatement()
PreparedStatement preparedStatement (string sql)
2.管理实务
提交事务:void commit()
回滚事务:void rollback()
3.Statement:执行sql对象
1.执行sql
2.int
executeUpdate(String sql):执行DML(insert,update,delete)语句,DDL语句(create,alter,drop)语句
*返回值为影响的行数
3.
ResultSet
executeQuery(String sql):执行DQL(select)语句
4.ResultSet:数据集对象
1.next():游标向下移动一行
2.getXxx():获取数据 如getInt() getString()
3.使用步骤 游标向下移动一行 判断是否有数据 获取数据
5.PreparedStatement
1.SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
如账号输入wadasnas 密码输入 sada or1=1
sql: select * from user where username ='wadasnas' password='sada' or 1=1
2.解决sql注入问题使用:使用PreparedStatement来解决
3.预编译的sql:参数使用?作为占位符
4.注意:这样做可以防止sql注入 且效率更好