jdbc概述
1.持久化:把数据保存到科迪啊电视存储设备中以供之后使用
java中数据存储技术
jdbc直接访问数据库
jdo(Java Data Object )技术
第三方O/R工具
JDBC介绍
是一个独立于特定数据库管理系统,通过SQL数据库获取和操作的公共接口(一组API),定义用来访问数据库的表中java类库
JDBC编写步骤
开始》》导入Java.sql包》》建立数据源(ODBC)【SQL Server】\附加相应缠上提供的驱动【Oracle、MySQL】》》加载并注册驱动程序》》创建Connection对象》》创建Statement对象》》执行SQL语句>>查询》》使用ResultSet对象》》关闭ResultSet对象》》关闭Staement对象》》关闭connection对象》》结束
获取数据库连接
要素一:Driver接口实现类
介绍:java.sql.Driver接口是所有JDBC驱动程序要实现的类
-
Oracle的驱动:oracle.jdbc.driver.OracleDriver
-
mySql的驱动: com.mysql.jdbc.Driver
要素二:URL
JDBC URL的标准由三个部分组成,各个部分用冒号分开
jdbc:子协议:子名称
协议:JDBC URL中的协议总是jdbc
子协议:子协议用于表示一个数据库驱动程序
子名称:一种表示数据库的方法
要素三:用户名和密码
user,password可以用“属性名=属性值”的方法告诉数据库
可以调用DriverManager类和getConnection()方法建立数据库的连接
//连接方式一
Driver driver;
try {
driver = new com.mysql.jdbc.Driver();
//url:http://localhost:8080/gmall/keyboard.jpg
//jdbc:mysql: 协议
//localhost:ip地址
//3306:默认的mysql的端口号
//test:test数据库
String url="jdbc:mysql://localhost:3306/test";
//将用户名和密码封装在Properties
Properties info=new Properties();
info.setProperty("user", "root");
info.setProperty("password", "010130");
Connection conn = driver.connect(url, info);
System.out.println(conn);
} catch (SQLException e) {
e.printStackTrace();
}
//方式二:对方法一的迭代 在如下程序中不出现第三方的api,使得程序具有更好的移植性
public void testConnection2() throws Exception{
//1.利用反射实现获取Driver实现类的对象
Class clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
//2.提供连接数据库
String url="jdbc:mysql://localhost:3306/test";
//3.提供连接需要的密码和用户名
Properties info=new Properties();
info.setProperty("user", "root");
info.setProperty("password", "010130");
//4.获取连接
Connection conn = driver.connect(url, info);
System.out.println(conn);
}
//方式三:使用DriverManager来替换Driver
public void testConnection3() throws Exception{
//1.获取Driver获取实现类对象
Class clazz = Class.forName("com.mysql.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
//获取另外三个基本信息
String url="jdbc:mysql://localhost:3306/test";
String user ="root";
String password = "010130";
//注册驱动
DriverManager.registerDriver(driver);
//获取链接
Connection conn= DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
//方式四:只是加载驱动,不用显示注册驱动过
public void testConnection4() throws Exception{
//1.获取另外三个基本信息
String url="jdbc:mysql://localhost:3306/test";
String user ="root";
String password = "010130";
//2.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//相比交3可以省略如下操作
/*Driver driver = (Driver) clazz.newInstance();
//注册驱动
DriverManager.registerDriver(driver);
*/
//获取链接
Connection conn= DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
//方式五:将数据库连接需要的4个基本信息声明在配置文件中通过读取配置文件的方式,获取连接
public void testConnection5() throws IOException, ClassNotFoundException, SQLException{
//1.该配置文件的四个基本信息
InputStream is = CommectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String user=pros.getProperty("user");
String password=pros.getProperty("password");
String url=pros.getProperty("url");
String driverClass=pros.getProperty("driverClass");
//2.加载驱动
Class.forName(driverClass);
//3.获取连接
Connection conn= DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
}