1.DriverManager(驱动管理类)
1.1getConnection(url,user,pwd) 获得连接
//获取相关的值
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String driver = properties.getProperty("driver");
String url = properties.getProperty("url");
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, user, password);
2.Connection接口
2.1createStatement 创建Statement对象
Properties properties = new Properties();
properties.load(new FileInputStream("src\\mysql.properties"));
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String driver = properties.getProperty("driver");
String url = properties.getProperty("url");
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, user, password);
Statement statement = connection.createStatement();
2.2preparedStatement(sql) 生成预处理对象
String sql="select name,psw from admin where name=? and psw= ?";
//得到PreparedStatement
//preparedStatement 对象实现了PreparedStatement接口的实现类的对象
PreparedStatement preparedStatement = connection.prepareStatement(sql);
3.PreparedStatement接口
3.1executeUpdate() 执行dml语句,返回影响的行数
//删除记录
String sql="delete from admin where name=?";
//得到PreparedStatement
//preparedStatement 对象实现了PreparedStatement接口的实现类的对象
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//给?赋值
//preparedStatement.setString(1,pwd);
preparedStatement.setString(1,admin);
//执行select语句 使用executeQuery
//如果是执行dml(update,insert,delete)executeUpdate()
int rows = preparedStatement.executeUpdate();
3.2executeQuery() 执行查询,返回ResultSet对象
String sql="select name,psw from admin where name=? and psw= ?";
//得到PreparedStatement
//preparedStatement 对象实现了PreparedStatement接口的实现类的对象
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//给?赋值
preparedStatement.setString(1,admin);
preparedStatement.setString(2,pwd);
//执行select语句 使用executeQuery
//如果是执行dml(update,insert,delete)executeUpdate()
ResultSet resultSet = preparedStatement.executeQuery();
3.3execute() 执行任意sql语句,返回bool
3.4setXXX() (占位符索引,占位符的值)解决sql注入问题
String sql="select name,psw from admin where name=? and psw= ?";
//得到PreparedStatement
//preparedStatement 对象实现了PreparedStatement接口的实现类的对象
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//给?赋值
preparedStatement.setString(1,admin);
preparedStatement.setString(2,pwd);
3.5setObject() (占位符索引,占位符的值)
4.ResultSet结果集
4.1next() 向下移动一行,如果没有下一行,返回false
if(resultSet.next()){
System.out.println("登录成功");
}else{
System.out.println("登录失败");
}
4.2previous() 向上移动一行
4.3 getXXX(列名|列的索引) 返回对应列的值,接收类型为XXX
while (resultSet.next()){//如果没有更多行 返回false
int id=resultSet.getInt(1);//获取该行的第一列
String name=resultSet.getString(2);//2
String sex=resultSet.getString(3);//3
String date=resultSet.getString(4);//4
System.out.println(id+"\t"+name+"\t"+sex+"\t"+date);
}
4.4 getObject(列名|列的索引) 返回对应列的值,接受类型为Object