- 数据库预处理操作基本语句
增加:
String sql = "insert into 表名 (列1, 列2, 列3, 列4,) values (?,?,?,?)"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, 列1); //其中是setString还是setLong是由列1的数据类型决定的 stmt.setString(2, 列2); stmt.setString(3, 列3); stmt.setString(4, 列4); |
删除:
String sql = " delete from表名 where 列1=?; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, 列1);
|
修改:
String sql = " update表名 set 列1=? where 列1=?; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, 列1); stmt.setString(2, 列1); |
查询:
String sql = " select * 表名 where 条件1=? and 条件2=?; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, 条件1); stmt.setString(2, 条件2); |
- 数据库连接
maria数据库建立连接:
Class.forName("org.mariadb.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mariadb://localhost:3306/数据库名", "bonly", "123456"); Statement stmt = conn.createStatement(); |
mysql数据库建立连接:
Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名", "bonly", "123456"); Statement stmt = conn.createStatement(); |
- 获取总行数并关闭
ResultSet rs=stmt.executeQuery(sql); int totalrows=rs.getRow(); //获取当前行号 rs.last(); int rows=rs.getRow(); out.print(rows); //获取结果集里总行数 while(rs.next()){
} rs.close(); stmt.close(); conn.close(); |
- executeexecuteQueryexecuteUpdate区别
方法executeQuery:这个方法被用来执行select语句,用于产生单个结果集的语句。
方法executeUpdate:用来执行insertupdate或delete语句以及sql ddl (数据定义语言)语句,例如create table 和drop table。insert、update或delete语句的效果是修改表中零行或者多行中的一列或者多列。例如excuteUpdate的返回值是一个整数,只是受影响的行数(即更新计数)。对于create table或drop table等不操作行的语句,excuteUpdate的返回值总为零。
方法execute:用于执行返回多行多个结果集、多个更新计数或者二者的组合语句。因为多数程序员不会需要改高级功能。
execute方法应该仅在语句能返回多个结果的情况,尽管这种情况很少见。
假定已知某个过程返回两个结果集,则在使用方法execute执行该过程后,必须调用方法getResultSet获得第一个结果集,然后调用适当的getXXX方法获取其中的值。要获得第二个 结果集,需要先调用getMoreResults方法,然后在调用getResultSet方法。如果已知某个过程返回两个更新计数,则首先调用方法getUpdateCound,然后调用getMoreResults,并再次调用getUpdateCount。