1.JDBC 操作步骤
public void quickStart() throws ClassNotFoundException, SQLException {
//1、注册驱动 (确认要使用哪个数据库)
Class.forName("com.mysql.jdbc.Driver"); //加载Driver类
//2、连接数据库 (获取到一个数据库连接对象)
String url ="jdbc:mysql://127.0.0.1:3306/db1";
//String url ="jdbc:mysql://127.0.0.1:3306/db5?useUnicode=true&characterEncoding=utf8";//解决中文乱码
Connection conn = DriverManager.getConnection(url, "root", "");
//3、编写SQL语句
String sql="select id,name from user";
//4、把SQL语句发送给数据库 (数据库执行SQL代码,并返回执行结果)
Statement stmt = conn.createStatement();//基于数据库连接对象,创建一个操作数据库的对象
ResultSet rs = stmt.executeQuery(sql);//把sql代码发给数据库
//5、处理SQL的执行结果
while(rs != null && rs.next()){
System.out.print(rs.getInt("id")+"\t");
System.out.print(rs.getString("name")+"\t");
System.out.println("=======================================");
}
//6、释放资源(断开和数据库的连接)
rs.close();
stmt.close();
conn.close();
}
1.1 DriverManager
Driver Manager(驱动管理类)作用:
1.注册驱动
2.获取数据库连接
//注册驱动
MySQL 5之后的驱动包,可以省略注册驱动的步骤
自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类
Class.forName("com.mysql.jdbc.Driver");
//获取数据库连接
Connection conn = DriverManager.getConnection(连接路径, 用户名, 密码);
1.2.Connection对象
Connection(数据库连接对象)作用:
1.获取执行 SQL 的对象
2.管理事务
//Connection是一个接口
//作为数据库连接对象
//作用: 1、创建数据库操作对象 2、管理事务
conn.setAutoCommit(false); //相当于MySQL中的 : start transaction;
conn.commit(); //相当于mysql中的: commit
conn.rollback(); // rollback
1.3 Statement
Statement作用:
执行SQL语句
int executeUpdate(sql):执行DML、DDL语句
//返回值:(1) DML语句影响的行数 (2) DDL语句执行后,执行成功返回 0
ResultSet executeQuery(sql):执行DQL 语句
//返回值: ResultSet 结果集对象
ResultSet使用步骤:
游标向下移动一行,并判断该行否有数据:next()
获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){
//获取数据
rs.getXxx(参数);
}
1.4 PreparedStatement
解决Statement对象中存在的SQL注入风险
//创建PreparedStatement对象 【预编译SQL对象】
PreparedStatement pstmt = 数据库连接对象.prepareStatement( sql语句 );
String sql="select * from user where username=? and pasword=?";//?是占位符(先占个位置,没有值)
把sql语句先发给数据库
给?占位符,赋值: 1,"aaa" 2,"aaa"