1. jdbc的概念及作用
- 概念:
Java数据库连接技术(Java DataBase Connectivity),由一组使用Java语言编写的类和接口(JDBC API)组成,它们位于java.sql以及javax.sql中。 - 作用
能实现Java程序对各种数据库的访问
2.JDBC访问数据库步骤:
Statement
1.Class.forName()加载驱动
Class.forName("com.mysql.jdbc.Driver");
2.DriverManager获取Connection连接
String url="jdbc:mysql://192.168.112.100:3306/bank"; // 192.168.112.100 数据库地址;bank 是库名
Connection con = DriverManager.getConnection(url, "root", "ok"); //三个参数分别是地址,用户名,密码
3.创建Statement和执行SQL语句
Statement sta = con.createStatement();
String sql="select * from account"; //sql变量,值为SQL语句命令
4.返回ResultSet查询结果
ResultSet rs = sta.executeQuery(sql); //查询
sta.executeUpdate(sql); //增删改
5.控制台打印
打印整个表数据
while (rs.next()) {
int i=1;
while (i<=rs.getMetaData().getColumnCount()){
System.out.print(rs.getObject(i)+"\t|");
i++;
}
System.out.println();
}
打印一列数据
while (rs.next()) {
System.out.println(rs.getString(1)) //打印第一列数据,getString 的形参表示的是哪一列
}
6.释放资源
rs.close();
sta.close();
con.close(); //后用先关
PrepareStatement
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.DriverManager获取Connection连接
String url = "jdbc:mysql://192.168.112.100:3303/test";
Connection con = DriverManager.getConnection(url,"root","ok");
//3.创建PreparedStatement
String sql = "select * from student where stu_id=?";
PreparedStatement ps = con.prepareStatement(sql);
//填充SQL语句中的问号
ps.setInt(1,1); //第一个参数表示是第几个问号,第二个参数是表示要传入的条件。要是传入的数String类型,则要用setString()
//4.返回ResultSet 的查询结果
ResultSet rs = ps.executeQuery();
while (rs.next()){
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
System.out.print(rs.getObject(i)+"\t");
}
System.out.println();
}
//5.释放资源
rs.close();
ps.close();
con.close();
Statement与PreparedStatement区别
- ①PrepareStatement继承Statement
- ②Statement由方法createStatement()创建,该对象用于发送简单的SQL语句
- ③PreparedStatement由方法prepareStatement(sql)创建,该对象用于发送带有一个或者多个输入参数的SQL语句
- SQL语句使用“?”作为数据占位符
- 使用setXxx()方法设置数据
注:?是什么类型,则set用什么类型,比如?处参数时int,则使用setInt()方法
- ④PreparedStatement—预编译
注:在SQL语句发送给DBMS之前就已经编译完成- 效率、性能、开销
- 安全性
- 代码可读性