jdbc屏蔽了不同数据库的原生api,共用一套api来规范实现不同数据库的编程操作
jdbc提供了一套共用的api, 其自身包含了不同数据库的api, jdbc只管怎么用,具体实现需要靠不同厂商的驱动包, 因此再使用jdbc实现mysql编程时, 就需要先下载mysql提供的驱动包
使用jdbc 增, 删, 改
- 使用jdbc操作数据库, 插入一条记录
- 首先要提前准备好mysql数据库和数据表
- 删和改操作只需改变sql语言编写那一步即可
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class JdbcInsertDome {
public static void main(String[] args) throws SQLException {
//1. 创建数据源, 描述数据库服务器的位置
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/text1?characterEncoding=utf8&usessl=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("123456");
//2. jdbc网络连接数据库库(jdbc代码是要实现一个mysql客户端, 通过网络与服务器通信)
Connection connection = dataSource.getConnection();
//3. 编写sql语句
String sql = "insert into student value (1, '张三')";
PreparedStatement statument = connection.prepareStatement(sql);
//4. 执行sql代码, 控制客户端给服务器发送请求
int ret = statument.executeUpdate();
System.out.println("ret =" + ret);
//5. 断开与数据库的连接, 释放资源
statument.close();
connection.close();
}
}
实现动态输入数据,
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JdbcInsertDome {
public static void main(String[] args) throws SQLException {
//1. 创建数据源, 描述数据库服务器的位置
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/text1?characterEncoding=utf8&usessl=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("123456");
//2. jdbc网络连接数据库库(jdbc代码是要实现一个mysql客户端, 通过网络与服务器通信)
Connection connection = dataSource.getConnection();
//3. 编写sql语句
Scanner scan = new Scanner(System.in);
System.out.println("请输入学号:");
int id = scan.nextInt();
System.out.println("请输入姓名:");
String name = scan.next();
String sql = "insert into student value (?, ?)";
PreparedStatement statument = connection.prepareStatement(sql);
statument.setInt(1, id);
statument.setString(2, name);
System.out.println(statument);
//4. 执行sql代码, 控制客户端给服务器发送请求
int ret = statument.executeUpdate();
System.out.println("ret =" + ret);
//5. 断开与数据库的连接, 释放资源
statument.close();
connection.close();
}
}
使用jdbc查询
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println(id + ":" + name);
}
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcSelectDome {
public static void main(String[] args) throws SQLException {
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/text1?characterEncoding=utf8&usessl=false");
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("123456");
Connection connection = dataSource.getConnection();
String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println(id + ":" + name);
}
resultSet.close();
statement.close();
connection.close();
}
}