一、DriverManager
1、用于注册驱动程序:registerDriver(Driver driver)。
更常用的是Class.forName("com.mysql.jdbc.Driver")是由于Driver中包含了registerDriver(Driver driver),值得注意的是,是mysql5之后的版本中,可以省略注册驱动
2、获取连接
使用getConnection(String url, String user,String password)
三个参数分别对应url连接路径,user用户名,password密码,
其中url的参数格式较为固定:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
例如:jdbc:mysql://127.0.0.1:3306/db1
获取连接的函数使用示例:
Connection conn = DriverManager.getConnection(url,user,password);
二、Connection
1、获取执行SQL的对象
- 普通执行对象:Statement createStatement()
- 预编译SQL的执行对象,防止注入:PreparedStatement prepareStatement(sql)
- 执行存储过程的对象(不常用)
2、管理事务
- 开启事务:setAutoCommit(boolean autoCommit)
- 提交事务:commit()
- 回滚事务:rollback()
一般在try...catch...语句块中使用。
三、Statement接口
1、执行SQL语句
executeUpdate(sql)执行对表、数据库增删改的操作。返回值是一个int值返回受影响的行数。
executeQuery(sql)用于查询操作。
四、ResultSet
1、封装DQL查询语句的结果
2、方法:
next():判断数据表中当前行是否为有效行。
getXxx(参数):用于获取数据,参数可以是列编号(1开始),也可以是列名。
一般格式:
while(rs.next()){rs.getXxx(参数);
}
五、PreparedStatement
编译SQL语句并执行,可防止SQL注入。
使用该语句,获取SQL执行对象时就传入SQL语句,格式如下(使用占位符“?”)
String sql = "select * from student where name = ? and password = ?";
PreparedStatement pst = conn.prepareStatement(sql);
其中的“?”是一个参数值,设置如下:
setXxx(参数1(?的编号),参数2(值)):由此来给?赋值。Xxx是数据类型
之后执行sql不需要再传递sql语句。
executeUpdate();
executeQuery();
开启预编译功能:在url加入参数:useServerPrepStmts=true