什么是JDBC
JDBC(JavaDataBase Connectivity)Java数据库连接。
就是用java语言来操作数据库。
我们的传统方式是在控制台操作数据库。
jdbc就是用java语言来操作数据库。
JDBC的原理
jdbc其实就是一组接口,想要实现这个接口的功能就是各个数据库的驱动。
JDBC的常用类(接口)
- DriverManager – 类,用来获取Connection;
- Connection – 接口;
- Statement – 接口;
- ResultSet – 接口。
他们的作用
1 DriverManager
是JDBC驱动程序的基本服务。由DriverManager类初始化驱动程序。
是JDBC的管理层。
2.Connection
代表与数据库的链接,并拥有创建SQL语句的方法,以完成基本的SQL操作,同时为数据库事务提供提交和回滚方法。
3 Statement
用于执行不带参数的简单SQL语句。创建Statement实例对象后可以调用JDBC提供的3种执行SQL语句的方法:
(1)executeUpdate()方法,一般用于执行SQL的INSERT,DELETE,UPDATE语句
(2)executeQuery()方法,一般用于执行SQL的SELECT语句,因为 它的返回值是执行SQL语句后产生的一个ResultSet接口的实例(结果集)
(3)execute()方法,即一般它执行的SQL语句既有查询又有更新值,约等于executeUpdate()和executeQuery()两个方法的合辑。
4PreparedStatement
它与Statement 的主要区别
(1)它包含的SQL语句是预编译的,所以当多次执行一条SQL语句时用它会更快
(2)在设置参数是可以用“?”代替。如:
PreparedStatement pstmt=conn.preparedStatement(insert into test values(?,?));
pstmt.setString(1,‘gg’);
pstmt.setString(2,‘123’);
5ResultSet
包含了Statement和PreparedStatement的executeQuery方法中SELECT的结果集。相当于用它来读取数据库里每列的值。
举例:
public Connection getConnection() {
if (connection == null) {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/ig","root","orcl");
} catch (Exception e) {
e.printStackTrace();
}
}
return connection;
}
public Statement getStatement() {
if (connection == null) {
getConnection();
}
try {
statement = connection.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return statement;
}
举例:
public boolean select(User login) {
boolean boo =false;
DbUtil dbUtil=new DbUtil();
try {
Statement stm= dbUtil.getStatement();
String sql="select * from user where username ='"+login.getName()+"' and password ='"+login.getPassword()+"'";
ResultSet rs =stm.executeQuery(sql);
while(rs.next()) {
String name = rs.getString("username");
String password =rs.getString("password");
System.out.println("账号:"+name+",密码"+password+".");
boo=true;
}
stm.close();
} catch (Exception e) {
e.printStackTrace();
}
return boo;
}