JDBC API知识总结
什么是JDBC?
Java Database Connectivity:Java和数据库的连接技术,sun公司推出的一套java用于数据库操作的接口API。JDBC可以访问各种不同的数据库,如:Mysql、Oracle、SQLServer、DB2等,开发者只需面对这套接口编程即可,不同数据库厂商需针对这套接口提供不同实现。不同的实现集合即为不同数据库的驱动。
JDBC程序编写步骤
注册驱动
获取连接
执行增删改查
释放资源
以MySQL为例:
准备工作:首先配置MySQL驱动,驱动程序由数据库提供商提供下载。MySQL驱动下载地址为:http://dev.mysql.com/downloads/。
将下载好的驱动mysql-connector-java-5.1.36-bin.jar拷贝到当前项目的lib文件中,如图。
然后将该文件添加到项目的类路径下:File-Project Structure- Modules。

然后在当前工程的lib文件中选中mysql驱动文件

然后点击Apply应用即可。
一、驱动加载:驱动加载有两种方式,方式一为通过new方式进行驱动加载,方式二为通过反射加载。
方式一:DriverManager.registerDriver(new Driver()); 可是在底层文件中可以看出,在new对象的过程中还会new一次对象,会使得创建的对象冗余。且这种方式加载的类是编译时类,若编译时该 类不存在,会出现错误。因此这种方式我们不常用。

方式二:通过反射加载类。Class.forName("com.mysql.jbc.Driver");这种方式加载的是运行时类,降低了类的依赖性,效率高。
二、驱动连接:可以通过DriverManager类建立到数据库的连接Connection:
DriverManager.getConnection(String url);
DriverManager.getConnection(String url,String user,String password);
DriverManager.getConnection(String url,Properties info)
其中:Properties info通常至少应该包括“user"和”password"属性
JDBC URL用于标识一个被注册的驱动程序,驱动程序管理器通过这个url选择正确的驱动程序,从而建立到数据库的连接。通常URL包括三个部分,各部门间用冒号分隔。
协议(JDBC URL的协议总是jdbc):子协议(用于标识一个数据库的驱动程序):子名称(标识数据库的方法)

url="jdbc:mysql://localhost:3306/test(数据库名)
DriverManager.getConnection(url);
DriverManager.getConnection(url,root,****);
DriverManager.getConnection(info.getProperties("url"),info.getProperties("user"),info.getProperties("password"));//一般选择此种方式
三、操作或访问数据库:数据库连接用于向数据库服务器发送命令和SQL语句,并接受数据库服务器返回的结果。其实数据库连接就是一个Socket连接。
Connection连接对象接口:createStatement():生成命令对象 preparedStatement():生成预编译命令对象(常用,这种sql语句可通过设置占位符以避免执行SQL语句时乱码)
Statement命令对象接口:executeUpdate(sql):执行增删改语句,返回受影响的行数
executeQuery(sql):执行查询语句,返回结果集
execute(sql):执行查询语句,返回boolean
Connection连接对象接口:createStatement():生成命令对象 preparedStatement():生成预编译命令对象(常用,这种sql语句可通过设置占位符以避免执行SQL语句时乱码)
PreparedStatement命令对象接口:executeUpdate(sql):执行增删改语句,返回受影响的行数
executeQuery(sql):执行查询语句,返回结果集
execute(sql):执行查询语句,返回boolean
setXX(占位符索引,占位符的值):设置对应索引的占位符的值,类型为XX类型
ResultSet结果集对象接口:next():下移一行,返回当前行是否有值
previous():上移一行,返回当前行是走有值
getXX(列索引||列明|别名):返回对应列的值,返回类型为XX
四、关闭连接:connection.close();set.close();driver.close();
PreparedStatement与Statement的区别:
Statement的sql拼接是个难题;PreparedStatement可防止SQL注入,可处理Blob类型数据,可最大可能提高性能。
——————————————————————————————————————————————————————————————————————————
//加载驱动
DriverManager.registerDriver(new Driver());//一般不用这种
Class.forName(driver);//通过配置文件获取driver=com.mysql.jdbc.Driver
//获取连接
Connection connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/girls","root","1014");
Connection connection = DriverManager.getConnection(url, user, password);//通过配置文件获取三者信息
//执行操作
//String sql="DELETE from beauty where id=9";
//String sql="UPDATE beauty set name='穷查查' WHERE id=7" ;
String sql="select count(*) from admin where username=? and password=?";//编写SQL语句:?表示占位符
preparedStatement.setString(1,username);
preparedStatement.setString(2,pas);
PreparedStatement preparedStatement = connection.prepareStatement(sql);//获取执行SQL语句的命令对象
ResultSet set = preparedStatement.executeQuery();//返回结果集
//关闭连接
set.close();
statement.close();
connection.close();
———————————————————————————————————————————————————————————————————————————

浙公网安备 33010602011771号