JDBC:
概念:
数据库连接,java语言操作数据库 ——操作所有关系型数据库的规则—— 一组接口
入门:
1.导入驱动JAR包
(1)复制文件到模块的libs目录下
(2)右键 -->
2.注册驱动
3.获取数据库的连接对象Connection
4.定义sql语句
5.获取执行sql语句的对象statement
6.执行sql,接收返回的结果
7.处理结果
8.释放资源
详解各个对象:
1.DriverManager ——驱动管理对象
1.注册驱动 registerDriver
存在静态代码块
Mysql5后的驱动jar包可以省略注册驱动的步骤
2.获取数据库连接
方法:static Connection getConnection(String url, String user, String password)
参数:
Url:指定连接的路径
Jdbc:mysql//ip地址:端口/数据库名
例:jdbc:mysql://localhost:3306/day3
细节:如果连接的是本机的mysql服务器,并且mysql服务默认端口是3306,则url可以简写为
Jdbc:mysql://
User:用户名
Password:密码
2.Connection ——数据库连接对象
(1)功能:
获取语句对象:
Statement createStatement()
PreparedStatement prepareStatement(String sql)
管理事务:
开启事务:void setAutoCommit(boolean autoCommit)调用此方法参数为false,开启事务
提交事务:commit()
回滚事务:rollback()
注:管理事务时必须使用同一个对象调用管理事务的方法
3.Statement ——执行sql对象
(1)执行sql
a.Boolean excute(String sql)可以执行任意语句
b.Int excuteUpdate(String sql):执行DML、DDL语句返回影响的行数
c.ResuleSet excuteQuery(String sql) 执行DQL语句
(2)练习:
Next():判断是否是最后一行末尾(是否有数据),如果是则返回false如果不是则返回true
getXxx(参数):
Xxx:代表数据类型
参数:
Int:代表列的编号
String:列名
注意:
使用步骤
1.游标向下移动一行
2.判断是否有数据
3.获取数据
4.ResuleSet ——结果集对象
5.PreparedStatement ——执行sql的对象(更强大)
1.sql注入问题:在拼接sql时有一些sql的特殊关键字参与字符串的拼接,会造成安全性问题
(1)输入用户随意,输入密码a’or’a’=’a
2.解决sql注入问题:使用preparedStatement对象来解决问题 ——执行预编译sql语句的对象
预编译的sql:使用?作为占位符
注:后期都会使用PreparedStatement来完成增删改查操作
效率更快,可以防止sql注入
抽取JDBC工具类
目的:简化书写
分析:
1.抽取一个方法:注册驱动
2.抽取一个方法:获取连接对象
(1)需求:不想传递参数,还要保证工具类的通用性
解决方案:配置文件
3.抽取一个方法:释放资源
练习
登陆
JDBC控制事务
|
|