常用类和接口
1.DriverManager类:用来管理数据库中的所有驱动程序
常用方法getConnection(String url,String user,String password)
指定3个入口参数,依次是连接数据库的URL、用户名、密码,来获取与数据库的连接
2.Connection接口:代表与特定的数据库的连接,要对数据表中的数据进行操作,首先要获取数据库连接。
常用方法①:createStatement() 创建Statement对象
②:preparedStatement() 创建预处理对象PreparedStatement
3.Statement接口: 用于创建向数据库中传递SQL语句的对象。
常用方法:①executeQuery(String sql) 执行给定的SQL语句(查询SELECT),返回单个ResultSet对象
②executeUpdate(String sql) 执行给定的SQL语句(增删改),INSERT、UPDATE、DELETE语句
4.PreparedStatement接口:继承Statement,用于执行动态的SQL语句,通过PreparedStatement实例执行的SQL语句,将被预编译并保存到PreparedStatement实例中,从而可以反复的执行该SQL语句。
常用方法参考Statement接口
5.ResultSet接口:类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。
ResultSet对象具有指向当前数据行的光标。最初,光标被置于第一行之前,可以通过该对象的next()方法将光标移动到下一行;如果ResultSet对象没有下一行,next()方法返回false,所有可以在while循环使用next()方法迭代结果集。
ResultSet rst=stm.executeQuery(sql);
String username,passwd;
System.out.println("用户名\t密码");
while(rst.next()){
username=rst.getString("username");
passwd=rst.getString("password");
System.out.println(username+"\t"+passwd);
}
ResultSet对象的getxxx()方法可获取查询结果集中数据,由于ResultSet中保存的数据是表的形式,因此可通过使用getxxx()方法指定列的序号或列的名称来获取数据。
※通过JDBC操作数据库的步骤
首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载依次。然后在每次访问数据库时创建一个Connection实例,获取数据库连接;再获取Statement实例,用此来执行SQL语句,最后完成数据库操作时,释放与数据库的连接Connection.close()。
Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动
String url="jdbc:mysql://localhost:3306/new_database";
String user="root";
String password="369789";
Connection con=DriverManager.getConnection(url, user, password); //创建连接对象
Statement stmt=con.createStatement(); //获取Statement实例
String sql="insert into tb_aa(username,password) values('王五','123456')";
stmt.executeUpdate(sql); //执行SQL语句
con.close(); //释放与数据库连接
preparedstatement
Class.forName("com.mysql.jdbc.Driver"); //加载数据库驱动
String url="jdbc:mysql://localhost:3306/new_database";
String username="root";
String password="369789";
//建立连接
Connection con =DriverManager.getConnection(url,username,password);
//生成一条sql语句
String sql="insert into tb_aa (username,password) values (?,?);";
PreparedStatement pst=con.prepareStatement(sql);
pst.setString(1, "小明");
pst.setString(2, "22222222");
pst.executeUpdate();
con.close();