java/jsp执行sql语句的方式
首先给出sql驱动包
引入sql包
import java.sql.*;//java
<%@ page import="java.sql.*"%>//jsp
连接mysql数据库
String DBDRIVER= "com.mysql.jdbc.Driver";//驱动程序
String DBURL="jdbc:mysql://localhost:3306/db_jsp?characterEncoding=utf-8";
//localhost是本机地址,3306端口,db_jsp数据库名,utf-8编码
String DBUSER= "root";//登录名
String DBPASSWORD= "toor";//登陆密码
Connection conn=null;//Connection对象
try{
Class.forName(DBDRIVER);//将数据库驱动加载到JVM中,Driver类实例注册到DriverManager类中
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);//获取Connection对象
}catch (Exception e){
System.out.println("数据库连接失败:" + e.getMessage());
}
1.执行静态SQL语句,一般用Statement
Statement提供了三种执行方法:
(1)ResultSet executeQuery(String sqlString),执行查询语句,返回ResultSet;
(2)int executeUpdate(String sqlString),执行更新语句(INSERT,UPDATE,DELETE,SQL DDL[CREATE TABLE,DROP TABLE])等,返回值是本次操作影响的记录数
(3)execute(String sqlString),可以如(1)(2)处理单个语句,也可以处理返回多个结果的预编译语句
//执行例子
Statement stmt=null;无锡看男科医院哪家好 https://yyk.familydoctor.com.cn/20612/
String sql="INSERT INTO x(a,b) VALUES('1','2')";
stmt = conn.createStatement();
stmt.executeUpdate(sql);//int
2.执行动态SQL语句,一般用PreparedStatement
PreparedStatement继承自Statement,但已经过预编译,所以执行效率更高,并且PreparedStatement不是完整的sql语句,待定字符用'?'代替,用setXXX方法设置字段
PreparedStatement pstmt = null;//PreparedStatement对象
String sql = "UPDATE person set password=? WHERE id=?";//'?'动态设置
pstmt = conn.prepareStatement(sql);//预编译sql语句
pstmt.setString(1,"hello");//第一个动态字段是String类型
pstmt.setInt(2,123);//第二个动态字段是int类型
pstmt.executeUpdate();//执行语句
3.ResultSet接口提供访问结果集的方法
ResultSet rs=stmt.executeQuery("SELECT * FROM per");//假设per数据库有id和name字段
while(rs.next()){
String id=rs.getString("id");
String id=rs.getString("name");
System.out.println(id+" "+name);
}