什么是JDBC?(想直接砍实例,拉下去就有)
(Java Database Connection)java数据库连接。顾名思义就是java连接数据库进行操作用的。(后面那句你可以当做是废话^0^)
JDBC运行有三大步骤:加载驱动,连接数据库与运行sql语句,关闭所有操作。(个人理解是三大步骤 \(^~@~^)/ )
(以下操作不写捕捉异常,想知道异常请看java API文档)
第一大步骤:加载驱动(通俗的说就是 new 该数据驱动对象,驱动包可以在该数据库的官网下载,通常在数据库文件安装目录里面就找)
写法1:(如果没有发现这个类,会抛出异常。这种写法是大多数人常用的用法)
Class.forName("com.mysql.jdbc.Driver");//检查有没有这个类,这里是看有没有这个包如果这里报错就是说你没导入JAR文件
写法2:(这种写法比较容易出错,建议用上面那种写法)
new com.mysql.jdbc.Driver();//这个可以无视
第二大步骤:连接数据库与运行sql语句(此步骤要导入 java.sql.* 里面的类)
(1)连接数据库
Connection conn = null;//连接数据库用的接口
写法1:
//url数据库连接地址这写法包括账号和密码
String url="jdbc:mysql://127.0.0.1:3306/DataBaseName?user=root&password=****";
conn = DriverManager.getConnection(url);
写法2:
//这写法是把地址、账号、密码全部分开
String url = "jdbc:mysql://127.0.0.1:3306/DataBaseName";
String user = "root";
String password = "****";
conn = DriverManager.getConnection(url, user, password);
(2)运行sql语句
执行查询语句:
Statement stmt = null;//运行sql语句的接口
ResultSet rs = null;//结果集的接口
String sql = "(因为安全狗问题查询语句不能写进去,请见谅,注释那有参考)";//这里写sql查询语句select*from emp
stmt = conn.createStatement(); //这行可以把它理解成,在数据库里面创建一个运行sql语句的文本窗体
rs = stmt.executeQuery(sql);//写入sql语句并运行,把数据存放在结果集
执行DML(update, insert, delete, alter,简称DML语句,不过通常的人都不说DML)
Statement stmt = null;
String sql = "(因为安全狗问题查询语句不能写进去,请见谅,注释那有参考记得把 . 去掉 不然运行不了)";
//update emp set.ename='...' where.empno=1555;
stmt = conn.createStatement();
stmt.executeUpdate(String sql);
第三大步骤:关闭所有操作
rs.close();
stmt.close();
conn.close();
这顺序是按后用先关。
下面就写完整的JDBC运用格式
public class TestMysql {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {//当找不到这个类的存在所抛的异常
e.printStackTrace();//出错的堆栈信息
System.exit(-1);//退出,都找不到这个运用类的存在后面就不用执行了
}
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String url ="jdbc:mysql://127.0.0.1:3306/DataBase";
String user = "root";
String pass = "***";
String sql = "";//这里就不写sql语句了
try {
conn = DriverManager.getConnection(url,user,pass);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("empno") + " - " + rs.getString("ename"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {// finally 是不管有没有抛出异常都会执行里面的语句,这里用于关闭处理
try {
if(conn != null){
conn.close();
conn = null;
}
if(stmt != null){
stmt.close();
stmt = null;
}
if(rs != null){
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}