https://blog.csdn.net/weixin_42649617/article/details/106054335
多种
关系型数据库DBMS 提供统一的范围跟方式,目的就是用Java来操作数据库。Conection:
连接数据库Statement
发送SQL语句,增删改查PreparedStatement:
调用数据库中的 存储过程/存储函数ResultSet:
返回的结果集0、方法介绍:
Statement
PreparedStatement
预处理(预编译)
语句对象,使用预处直接替换
就可以了。也就是说循环执行多条sql语句实际上运行的是同一条但参数不同的sql语句
,这里仔细体会替换的含义。CallableStatement
: 调用数据库中的 存储过程/存储函数Connection
: 连接
ResultSet
:保存结果集
1、第一步: 加载具体驱动类
不同数据库的driveName 不一样
Class.forName(driveName);
2、第二步: 连接数据库
不同数据库的连接字符串URL也不一样
Connection connection = DriverManager.getConnection(URL, userName, pwd);
3、第三步:获得发送SQL语句的权限
//statement
Statement statement = connection.createStatement();
4、第四步:发送SQL语句,并获得结果
//增删改查数据
int count = statement.executeUpdate("填sql语句"); //
//查询数据
ResultSet result = statement.executeQuery("填sql语句"); //
5、第五步:处理结果
//处理增删改查结果
if(count>0) //count来自第四步
System.out.println("一行受到影响");
//处理查询结果,executeQuery返回的是一个列表集
while(result.next()) {
//result来自第四步
String sno = result.getString("Sno");
int grade = result.getInt("Grade");
System.out.println(sno+"---"+grade);
}
//处理查询结果,executeQuery返回的是一个列表集
while(result.next()) {
//result来自第四步
String sno = result.getString(1); //所查表的第一列
int grade = result.getInt(3); //所查表的第三列
System.out.println(sno+"---"+grade);
}
Statement
statement = connection.createStatement();
result = statement.executeQuery(sql);
PreparedStatement
创建的时候就传入Sql语句
PreparedStatement pre = connection.prepareStatement(“sql语句”);
int count = pre.executeUpdate();
PrepareStatement 预编译举例
String sql = "insert into student values(?,?,?)"
PreparedStatement pre = connection.prepareStatement(sql);
pre.setString(1,'2015121'); //第一个问号是: 2015121
pre.setInt(2,3); // 第二个问号是:3
pre.setInt(3,85); // 第三个问号是:85
prepareStatement 预编译再举例
String sql = "Select Sno,Cno,Grade from SC where Sno like ?";
PreparedStatement pre = connection.prepareStatement(sql);
pre.setString(1,"%520%"); //通配符
reslt = pre.executeQuery();
String sql ="select count(*) from user_information where userName=? and passWord=?"
statement = connection.prepareStatement(sql);
statement.setString(1,user);
statement.setString(2, pwd);
//返回结果
result = statement.executeQuery(); //executeQuery() 返回ResultSet类型
if(result.next()) //result取数据时,判断很重要, 没有一定会报错
count =result.getInt(1);
package 连接SQL_SERVER_标准代码;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JAVA_SQL_DEMO {
private final static String driveName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private final static String URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SCC"; //SCC是我的数据库名
private final static String userName = "登录名"; //这里填用户名
private final static String pwd = "密码"; //这里填登录名
//数组增删改查
public static void update(String sql) throws ClassNotFoundException, SQLException {
Connection connection = null;
Statement statement = null;
try {
//第一步: 加载具体驱动类
Class.forName(driveName);
System.out.println("加载驱动成功\n");
//第二步: 连接数据库
connection = DriverManager.getConnection(URL, userName, pwd);
System.out.println("连接数据库成功");
//第三步:获得发送SQL语句的权限
statement = connection.createStatement();
//第四步:发送SQL语句
int count = statement.executeUpdate(sql); // executeUpdate 指的是更新数据
//第五步:处理结果
if (count > 0) {
System.out.println("插入成功");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(statement!=null) statement.close();
if(connection!=null) connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//数据查询
public static void Query(String sql) throws ClassNotFoundException, SQLException {
Connection connection = null;
Statement statement = null;
ResultSet result =null;
try {
//第一步: 加载具体驱动类
Class.forName(driveName);
System.out.println("加载驱动成功\n");
//第二步: 连接数据库
connection = DriverManager.getConnection(URL, userName, pwd);
System.out.println("连接数据库成功");
//第三步:获得发送SQL语句的权限
statement = connection.createStatement();
//第四步:发送SQL语句,并获得结果
result = statement.executeQuery(sql); // executeUpdate 指的是更新数据
//第五步:处理结果
while(result.next()) {
String sno = result.getString("Sno");
int grade = result.getInt("Grade");
System.out.println(sno+"---"+grade);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//后建立的先关闭
if(result!=null) result.close();
if(statement!=null) statement.close();
if(connection!=null) connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//增删改查
update("insert into SC values(123,20,30)");
//数据查询
Query("select Sno,Grade from SC");
}
}