JDBC
1.JDBC基本概念
概念:Java DataBase Connectivity Java数据库连接,Java语言操作数据库。
JDBC本质:一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。真正执行的代码是驱动jar包中的实现类。
2.快速入门
步骤:
1.导入驱动jar包
mysql-connector-java-5.1.37-bin.jar
右键–>Add As Library
2.注册驱动
3.获取数据库连接对象 Connection
4.定义sql
5.获取执行sql语句的对象 Statement
6.执行sql,接受返回结果
7.处理结果
8.释放资源
代码实现:
public class JdbcDemo1 {
public static void main(String[] args) throws Exception {
//1.导入jar包
//2.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3.获取数据库连接对象
Connection connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/sqltest","root","123456");
//4.定义sql语句
String sql = "delete from stu where id = '9'";
//5.获取执行sql的对象
Statement statement = connection.createStatement();
//6.执行sql
int i = statement.executeUpdate(sql);
//7.处理结果集
System.out.println(i);
//8.释放资源
statement.close();
connection.close();
}
}
3.对JDBC各个接口和类详解
1.DriverManager:驱动管理对象
2.Connection:数据库连接对象
3.Statement:执行sql对象
4.ResultSet:结果集对象
5.PreparedStatement:执行sql对象
4.抽取JDBC工具类
目的:简化书写
分析:
1.注册驱动也抽取
2.抽取一个方法获取连接对象
3.抽取一个方法释放资源
public class JDBCUtil {
private static Connection connection = null;
private static PreparedStatement preparedStatement = null;
private static Statement statement = null;
private static ResultSet resultSet = null;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mysql1?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String password = "123456";
connection = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询用此方法
* @param sql
* @param o
* @return
* @throws SQLException
*/
public static ResultSet queryUtil(String sql,Object[] o) throws SQLException {
preparedStatement = connection.prepareStatement(sql);
if(o!=null && o.length>0){
for(int i=0;i<o.length;i++){
preparedStatement.setObject(i+1, o[i]);//ps.setObject(1,"aaa"); ps.setObject(2,"111");
}
}
resultSet = preparedStatement.executeQuery();//此处使用无参的方法
return resultSet;
}
/**
* 项目中的增删改都用此方法
* @param sql
* @throws SQLException
*/
public static void zenShanGai(String sql) throws SQLException {
statement = connection.createStatement();
statement.execute(sql);
}
/**
* 退出的时候调用此方法
* @throws SQLException
*/
public static void closeRes() throws SQLException {
if (connection != null) {
connection.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
if (statement != null) {
statement.close();
}
if (resultSet != null) {
resultSet.close();
}
}
}