JDBC(Java Database Connective):JDBC是一种与不同的数据库连接的操作标准。
一个类四个接口:
①java.sql.DriverManagers类:驱动管理。(注册、加载驱动)
②java.sql.Connection接口:数据库的连接。
创建Statement接口对象的方法:
Statement createStatement();
创建PreparedStatement接口对象的方法:
PreparedStatement prepareStatement(String sql)
注意第二个prepare没有d!!
③java.sql.Statement接口:操作sql语句。
Statement接口对象实现数据库操作的方法:
int executeUpdate(String sql) //数据更新
ResultSet executeQuery(String sql) //数据查询
④java.sql.PreparedStatement接口(子接口):操作sql语句。
一系列的setXxx()方法为指定顺序编号的占位符设置具体内容。
int executeUpdate(String sql) //数据更新
ResultSet executeQuery(String sql) //数据查询
⑤java.sql.ResultSet接口:返回查询结果集,相当于数据表。
第一步:加载驱动程序。
Class.forName("com.mysql.jdbc.Driver");
第二步:连接数据库。
连接数据库需要有以下3个信息:数据库的链接地址、数据库的用户名、数据的密码。(数据库服务要打开)
连接数据库需要依靠DriverManager类中的方法:
DriverManager.getConnection(String url,String user,String password) throws SQLException;
第三步:执行sql语句并返回执行结果。(用Statement、PreparedStatement、ResultSet结果)
第四步:关闭数据库。
连接数据库:(mysql)
import java.sql.*;
public class Test2 {
private static final String DBDRIVER ="com.mysql.jdbc.Driver";
private static final String DBURL ="jdbc:mysql://localhost:3306/406";
private static final String USER ="root";
private static final String PASSWD ="123456";
public static void main(String[] args) throws Exception{
Class.forName(DBDRIVER); //第一步:加载驱动程序
Connection conn =DriverManager.getConnection(DBURL,USER,PASSWD);
//第二步:连接数据库
System.out.println(conn); //返回结果是否连接成功
conn.close(); //第四步:关闭数据库
}
}
在这其中只是执行了1、2、4步操作
Statement接口和PreparedStatement接口的区别
(能使用PreparedStatement接口就使用)
用PreparedStatement接口查询全部数据:
import java.sql.*;
public class Test2 {
private static final String DBDRIVER ="com.mysql.jdbc.Driver";
private static final String DBURL ="jdbc:mysql://localhost:3306/406";
private static final String USER ="root";
private static final String PASSWD ="123456";
public static void main(String[] args) throws Exception{
Class.forName(DBDRIVER); //第一步:加载驱动程序
Connection conn =DriverManager.getConnection(DBURL,USER,PASSWD);//第二步:连接数据库
String sql =" SELECT uid,uname,pwd FROM t_user ORDER BY uid " ;//第三步:执行sql语句
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery() ; //数据查询,不设置占位符
while(rs.next()){
int uid =rs.getInt(1); //取出第1个数据列内容
String user = rs.getString(2); //取出第2个数据列内容
String pwd = rs.getString(3); //取出第3个数据列内容
System.out.println(uid+","+user+"," + pwd);
}
conn.close(); //第四步:关闭数据库
}
}
其实执行不同的操作要改变的只有第三步。
批处理:在JDBC2.0后开始增加,作用是一次性向数据库中发出多条操作命令。
事务处理的方法:
void commit() //事务提交
void rollback() //事务回滚
void setAutoCommit(boolean autoCommit) //设置是否为自动提交
事务处理的作用:当批处理进行了数据更新操作时,如果某个SQL语句出现了错误,可以设置整体更新操作是否提交。(默认情况下在SQL语句之前的SQL更新都会执行)