目录
JDBC介绍
-
数据库访问技术简介:
-
JDBC(Java DataBase Connectivity)是由Sun Microsystem公司提供的API(Application Programming Interface应用程序编程接口);它为Java应用程序提供了一系列的类,使其能够快速高效地访问数据库;这些功能是由一系列的类和对象来完成的,我们只需使用相关的对象,即可完成对数据库的操作
-
JDBC的工作原理
JDBC访问数据库步骤
步骤1:加载驱动
-
使用Class类的forName方法,将驱动程序类加载到JVM(Java虚拟机)中;
步骤2:获取数据库连接
-
成功加载驱动后,必须使用DriverManager类的静态方法getConnection来获得连接对象;
步骤3:创建Statement执行SQL语句
-
通过Connection对象创建
-
用于执行SQL语句
步骤4:处理ResultSet结果集
-
用于存储查询结果
-
只在执行select语句时返回
-
步骤5:释放资源 close();
案例
User定义
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'jim', '11111');
INSERT INTO `user` VALUES ('2', 'tom', '22222');
INSERT INTO `user` VALUES ('3', 'lucy', '3333');
INSERT INTO `user` VALUES ('4', 'laowang', '4444');
INSERT INTO `user` VALUES ('5', 'laoli', '5555');
使用Statement查询User
引入MySql驱动jar
public class User {
/**
* 主键 id
* 用户名 username
* 密码 password
*/
private Long id;
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public User(Long id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
import java.sql.*;
public class JdbcTest {
public static void main(String[] args) {
User jim = query("jim", "11111");
System.out.println(jim);
}
/**
* 根据用户名和密码查询用户
*
* @param username
* @param password
* @return
*/
private static User query(String username, String password) {
Connection conn = null;
Statement statement = null;
ResultSet rs