mysql execute query_JDBC连接MYSQL数据库/executeQuery(String sql),execute...

1. ResultSet executeQuery(String sql);执行SQL查询,并返回ResultSet对象。2.int executeUpdate(String sql);可执行增,删,改,返回执行受到影响的行数。3. boolean execute(String sql);可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet。

//用JDBC,各种数据库连接方式是相同的,只是不同的数据库的连接URL不同==================

Connection conn = null;

Statement stmt = null;

ResultSet result = null;

try{

// 注册 MySQL 驱动. 也可以使用下面两种方式的任一种

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

//new com.mysql.jdbc.Driver();

//Class.forName("com.mysql.jdbc.Driver").newInstance();

// 获取数据库连接。 三个参数分别为 连接URL,用户名,密码

conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/databaseWeb",

"root",

"admin");

// 获取 Statement。 Statement 对象用于执行 SQL。相当于控制台。

stmt = conn.createStatement();

// 使用 Statement 执行 SELECT 语句。返回结果集。

result= stmt.executeQuery("select * from tb_person");

%>

ID

姓名

英文名

性别

年龄

生日

备注

记录创建时间

操作

// 遍历结果集。rs.next() 返回结果集中是否还有下一条记录。如果有,自动滚动到下一条记录并返回 true

while (result.next()) { //这里可以看出与

int result的区别了

int id = rs.getInt("id"); // 整形类型

int age = rs.getInt("age");

String name = rs.getString("name"); // 字符串类型

String englishName = rs.getString("english_name");

String sex = rs.getString("sex");

String description = rs.getString("description");

Date birthday = rs.getDate("birthday"); // 日期类型,只有日期信息而没有时间信息

Timestamp createTime = rs.getTimestamp("create_time"); // 时间戳类型,既有日期又有时间。

out.println("        

");

out.println("    

");

out.println("    

" + id + "");

out.println("    

" + name + "");

out.println("    

" + englishName + "");

out.println("    

" + sex + "");

out.println("    

" + age + "");

out.println("    

" + birthday + "");

out.println("    

" + description + "");

out.println("    

" + createTime + "");

out.println("    

");

out.println("        删除");

out.println("        修改");

out.println("    

");

out.println("        

");

}

%>

//下面看看int executeUpdate(String sql)有什么区别吧=======================

Connection conn = null;

Statement stmt = null;

int result = 0;//用于记录返回执行受到影响的行数

try{

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/databaseWeb?characterEncoding=UTF-8",

"root",

"admit");

stmt = conn.createStatement();

// 使用 Statement 执行 SQL 语句,返回执行受到影响的行数

result = stmt.executeUpdate(sql);

}catch(SQLException e){

out.println("执行SQL\"" + sql + "\"时发生异常:" + e.getMessage());

return;

}finally{

if(stmt != null)    stmt.close();

if(conn != null)    conn.close();

}

//=下面说PreparedStatement===========================================

/*PreparedStatement是Statement的子接口(如图所示),表示预编译的 SQL 语句的对象,SQL 语句被预编译并存储在PreparedStatement对象中。然后可以使用此对象多次高效地执行该语句。*/

String id = request.getParameter("id");

String sql = "UPDATE tb_person SET name = ?, english_name = ?, sex = ?, age = ?,     birthday = ?, description = ? WHERE id = ? "; //7个问号代表7个字段预先要保留的值

Connection conn = null;

PreparedStatement preStmt = null;

try{

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/databaseWeb?characterEncoding=UTF-8",

"root",

"admin");

preStmt = conn.prepareStatement(sql); //使用PreparedStatement对象来构建并执行SQL语句

preStmt.setString(1, name);

preStmt.setString(2, englishName);

preStmt.setString(3, sex);

preStmt.setInt(4, Integer.parseInt(age));

preStmt.setDate(5, new Date(new SimpleDateFormat("yyyy-MM-dd").parse(birthday).getTime()));

preStmt.setString(6, description);

preStmt.setInt(7, Integer.parseInt(id));

// 使用 preStmt 执行 SQL 语句

int result = preStmt.executeUpdate(sql);

out.println("

");

if(result == 0)        out.println("影响数目为 0, 修改失败. ");

else    out.println(result + " 条记录被修改。");

out.println("返回人员列表");

// 将执行的 SQL 语句输出到客户端

out.println("
执行的 SQL 语句为:
" + sql);

}catch(SQLException e){

out.println("执行SQL\"" + sql + "\"时发生异常:" + e.getMessage());

e.printStackTrace();

}finally{

if(preStmt != null)    preStmt.close();

if(conn != null)    conn.close();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值