JDBC技术对数据库的操作
1.连接数据库
要访问数据库,首先要加载数据库的驱动程序(只需要在第一次访问数据库时加载一次),然后每次访问数据是创建一个Connection对象,接着执行操作数据库的SQL语句,最后在完成数据库操作后销毁前面创建的Connection对象,释放与数据库的连接。
两个步骤:
1.加载驱动程序:
Class.forName(‘com.mysql.jdbc.Driver”);
(ps:需导入mysql_connector_java_5.1.36_bin,jar包)
2.连接数据库:
String driver =”jdbc:mysql://127.0.0.1:3306/test”;
Connection con =DriverManager.getCconnection(driver,”root”,”123456”);
连接数据库的常见错误
1、未导入驱动包
2、URL写错了
3、用户名密码错误
4、驱动包的版本不兼容
一个Demo:
2.数据库查询
Statement接口将要执行SQL语句交给Connection对象,Connection对象与数据库连接,数据库查询到一个结果后返回一个结果集放在ResultSet接口当中。
创建接口对象:
Statement stmt=con.createStatement();
ResultSet res=stmt.executeQuery(“select * from tb_stu”);
executeQuery:执行SQL res:结果集对象
ResultSet接口常用方法:
ResultSet结果集有一个指针,一开始指在第一行以上(起始)
next() :向下移动指针
first()和last() 指针到第一行和最后一行
getInt(),getDouble(),getString(),getObject():多种返回类型
getString(String 列名),getString(int 第几列):两种重载方式
demo:
运行,结果如下:
3.动态查询
**sql注入:**SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
为了防止sql注入这种情况发生,运用动态查询
PreparedStatement接口:继承于Statement接口,但是比Statement接口更强大。
String sql=”select * from tb_stu where name =?”
PreparedStatement ps=con.prepareStatement(sql);
“?”:是通配符,可以代替任何字段
PrepareStatement有几个方法:
参数序号即第几个通配符,第二个参数是具体的参数值。
**模糊查询:**SQL语句中提供了like操作符用于模糊查询,可使用“%”来代替0个或多个字符,使用下划线“_”来代替一个字符。
demo:
查询结果如下: