一.JDBC基础
Java Database Community (即使用Java程序连接数据库执行SQL的技术)
JDBC也是一些类和接口的集合,与其相关的接口与类都在java.sql包中。例如:1.Driver接口 用来驱动程序类? 2.Connection接口 用来连接数据库? 3.Statement接口? 用来执行SQL语句并将数据检索到ResultSet中 4.ResultSet接口 数据库结果集数据表,通常由执行查询数据库语句产生。5.DriverManager类即驱动程序管理器,可以通过这个类来得到连接对象? 6.CallableStatement接口??用来执行存储过程 7.PreparedStatement? 执行预编译 SQL 语句。
二.使用JDBC
1.获得相应程序的驱动jar包
2.项目引用jar包:可以直接导入jar包 或者 给目前项目新建一个文件夹,把jar包放入该文件夹中的lib文件夹中,再导入。
3.代码连接
? ? ? ?a.加载驱动程序 使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");此时需要抛出编译时异常,必须处理
? ? ? ? b.? 建立连接(Connection)使用DriverManager.getConnection,这个方法为静态方法,所以需要用类名.方法名调用。? ? 调用java.sql包中的任何一个类中的任何一个方法都会抛出编译时异常。? 故调用DriverManager.getConnection时也需要抛出异常。
? ? ? ? c.创建Statement??
? ? ? ? d.执行SQL? int executeUpdata(String insert,update,delete)
? ? ? ? ? ? ? ? ? ? ? ? ? ?ResultSet ececuteQuery(String selectSQL)
? ? ? ?e.关闭资源 ,需要注意的是关闭资源的顺序与建立资源的顺序刚好相反。
注: 使用finally块是因为finally块无论异常有没有发生都需要执行,正好适合我们去关闭资源,使用close方法时同样会抛出异常 ,记得一定要处理。
Connection con = null;
Statement sta =null;//需要在finally中使用 故设计为全局变量
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;databaseName=pas";//url为统一资源定位符
con = DriverManager.getConnection(url,"账号","密码");
System.out.println(con);
sta = con.createStatement();
//String sql = "sql语句";
String sql2 = "sql语句";
int row =sta.executeUpdate(sql2);//sql语句影响行数
if (row ==1){;//影响行数为1 即影响成功
System.out.println("insert 成功");
}else{
System.out.println("失败");
}
} catch (ClassNotFoundException e) {
System.out.println("驱动程序没有找到");
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}finally {
try {
con.close();
con =null;
sta.close();
sta =null;
} catch (SQLException throwables) {
throwables.printStackTrace();
}
con =null;
}
System.out.println("后续代码");
}
|