一.JDBC的简介
1.JDBC(java database connectivity:java数据库连接)是一门使用Java程序连接数据库 执行sql语句的技术,也是类和接口的集合。
2.接口类:
(1)、Driver接口:连接数据库的驱动程序类,Class.forName();方法的使用。
(2)、DriverManager:驱动程序管理者。getConnection()方法
(3)、Connection:表示连接对象
(4)、Statement:执行sql语句的接口,executeUpdate(sql)。(增,删,改,创建)
(5)、ResultSet:查询接口
二,JDBC在idea中的使用
1.加载驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
1)Class.forName("驱动程序包名类名");静态方法
2)驱动程序类名java.sql.Driver接口
3)forName()方法会抛出一个编译时异常ClassNotFoundException.必须要处理
4)驱动程序加载到内存并且去DriverManager注册
2.建立连接(Connection) DriverManager.getConnection();
1)静态方法
2)getConnection()方法会抛出一个编译时异常SQLException
(调用java.sql包中的任何一 个类的任何一个办法都会抛出编译时异常SQLException)
3)url: 数据库类型:名称://IP:port:dbName, userName, pwd
(例如:Connection con = DriverManager.getConnection ("jdbc:sqlserver://localhost:1234;databaseName=data", "SQLServer", "123"); 不区 分大小写。)
3.创建Statement。 通过Statement创建的对象调用方法实现sql语句
4.执行sql语句 sql语句影响的行数 int executeUpdate(String sql);(insert,update,delete: 增,改,删) ResultSet.executeQuery(String sql)(select:查询)
5.关闭资源 关闭资源与建立资源顺序刚好相反。 创建的对象要使用全局模式。因为 finally中要关闭资源。因为全局变量的初始值为null, 所以要进行if判断,若不为空 则调用close()方法关闭资源,并将对象赋值为null,方便 垃圾回收车回收。
public class Run1 {
public static void main(String[] args) {
Connection con = null;
Statement sta = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("驱动程序加载完毕");
String url = "jdbc:sqlserver://localhost:1433;databaseName=pas";
con = DriverManager.getConnection(url, "sa", "sa");
sta = con.createStatement();
String sql = "insert into teacher (teanum, teaName, teatitle, teatypeid, teabtd, pwd, static)" +
"values ('20010001', '哈哈哈', '讲师', 1, '1983-12-6', 1, 1)";
int rows = sta.executeUpdate(sql);
if(rows == 1){
System.out.println("插入成功");
} else {
System.out.println("插入失败");
}
} catch (ClassNotFoundException e) {
System.out.println("驱动程序没有找到");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(sta != null){
sta.close();
sta = null;
}
if(con != null){
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}