1.使用jdbc的步骤:
加载数据库驱动》》建立数据库连接》》创建执行sql语句的Statement对象》》编写sql语句》》用Statement对象执行executeUpdate方法执行sql语句 》》处理执行结果(Result)》》释放资源
1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
2.建立连接
conn = DriverManager.getConnection(url,user,password);
3.创建执行sql语句的Statement对象
statement = conn.createStatement();//用于执行静态sql语句并返回它所生成结果的对象,一些派生接口还可以接受参数。
4.编写sql语句
String sql1="drop database if exists mysql_db "
5.执行sql语句
statement.executeUpdate(sql1);
6.处理执行结果
ResultSet r = s.executeQuery()
7.释放资源
try {
if (statement != null)
statement.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
2.PreparedStatement
有效的防止sql
注入(SQL
语句在程序运行前已经进行了预编译,当运行时动态的把参数传给PreprareStatement。
3.Resultset
封装执行结果时,采用的类似于表格的方式,ResultSet
对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next()
方法,可以使游标指向具体的数据行,然后调用方法获取该行的数据。
//编写查询sql语句
PreparedStatement statement = conn.prepareStatement("select * from table1");
ResultSet resultSet = statement.executeQuery();//将执行结果给ResultSet
while (resultSet.next()) {//循环判断表中是否还有数据
int id = resultSet.getInt(1);//通过列的索引查询
String name = resultSet.getString("column2");//通过列名查询
}
4.
// 调用Connection对象的setAutoCommit()方法,如果将布尔的false传递给setAutoCommit(),则关闭自动提交,也就相当于开启了事务
// conn.commit();提交事务
// rollback()方法回滚事务,回滚到你开始事务之前。
5.
(1)
PreparedStatement s = conn.prepareStatement("insert into student value(?,?,?,?)");
s.setInt(1,1);s.setString(2,"张三");s.setString(3,"男");s.setInt(4,19);
(2)
ps = conn.prepareStatement("insert into student(id,name,sex,age) values(4,'赵六','女',21)");