提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
JAVA 操作数据库
利用jdbc 提示:首先导入包import. 使用步骤 1.主函数代码块
代码如下(示例):
String url="jdbc:mysql://ip:3306/hello?";
String user="root";
String password="12345";
String str="com.mysql.jdbc.Driver"; //5.7版本
try{
Class.forName(str);
Connection connection=DriverManager.getConnection(url,user,password);
Statement statement=connection.createStatement();
ResultSet resultSet=statement.executeQuery("select * from student");
while(resultSet.next()){
System.out.println(resultSet.getString("name"));
//System.out.println(resultSet.getString(3));
}
}catch (Exception e){
e.printStackTrace();
}
2.读出数据
结果如下(示例):
即可输出student里面的name或者字段为3的值
该处使用的url网络请求的数据。
##3.代码改进String url="jdbc:mysql://ip:3306/hello?";
String user="root";
String password="12345";
String str="com.mysql.jdbc.Driver"; //5.7版本
String sql="select * from student where name=?";
try{
Class.forName(str);
Connection connection=DriverManager.getConnection(url,user,password);
PreparedStatement preparedStatement=connection.prepareStatement();
preparedStatement.setObject(1,name);
ResultSet resultSet=preparedStatement.executeQuery(sql);
String name=(String)resultSet.getObject("name");
System.out.println(name);
while(resultSet.next()){
String name=(String)resultSet.getObject("name");
System.out.println(name);
//System.out.println(resultSet.getString(3));
}
}catch (Exception e){
e.printStackTrace();
}
总结
把上方代码定义为一个方法,并使参数可控,便可以造成sql注入。
改进以后用预编译preparedstatement便可有一定功能的防止它。
鄙人文笔有限很多东西没写也没结果图。尬死!



