1,开发步骤
①.注册驱动jar包
②.连接数据库
③.获取传输器
–Statement:用来执行SQL的,但是可能发生SQL注入
–PreparedStatement:用来执行SQL的,先把SQL骨架发送给数据库执行
避免SQL注入的风险,省略了SQL的拼接过程,高效
④.执行SQL
–executeQuery():执行查询的SQL,会返回结果集
–executeUpdate():执行增删改的SQL,会返回对数据库的影响行数
⑤.解析结果集
⑥.释放资源 --使用工具类
2.代码
package cn.tedu;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
//jdbc的练习
public class Test1 {
public static void main(String[] args) {
// method();//query
method2();//insert
}
//向dept表里插入数据
private static void method2() {
Connection conn = null;
PreparedStatement ps = null;
try{
//获取连接
conn = JDBCUtils.getConnection();
//获取传输器
String sql = "insert into dept(dname,loc) values (?,?)";
ps = conn.prepareStatement(sql);
//设置SQL的参数
ps.setString(1,"销售部");
ps.setString(2,"一区");
//执行SQL
// ps.executeQuery();//专门执行查的SQL
int rows=ps.executeUpdate();//专门执行增删改的SQL
if(rows>0){
System.out.println("插入成功");
}
}catch (Exception e){
System.out.println("插入失败");
e.printStackTrace();
}finally {
JDBCUtils.close(null,ps,conn);
}
}
//查询emp表里的tony的所有数据
private static void method() {
Connection conn = null;
PreparedStatement ps = null ;
ResultSet rs = null;
try{
//注册驱动,获取连接
conn = JDBCUtils.getConnection();
//获取传输器
String sql="select * from emp where ename = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,"tony");
//解析结果集
rs = ps.executeQuery();
while(rs.next()){
for (int i = 1; i <= 8 ; i++) {
System.out.println(rs.getString(i));
}
}
}catch (Exception e){
e.printStackTrace();
}finally {//释放资源,保证一定会执行
JDBCUtils.close(rs,ps,conn);
}
}
}