如何通过Java程序访问数据库?您可以使用JDBC(Java数据库连接).jdbc由以Java语言编写的类和界面组成,该类和界面可以为Oracle和Oracle和Oracle和Oracle和MySQL,从而实现Java代码以操作数据库。
JDBC的顶层是开发人员本身编写的Java应用程序,如下图所示。Java应用程序可以通过JDK和BAG中的集成JDBC API访问数据库。
JDBC API存在于JDK中,其中包含Java应用程序和各种数据库交互的标准接口,例如连接数据库的接口,操作数据库的接口,查询结果设置接口,预处理操作接口等。使用这些JDBC接口来操作关系-Type数据库。
JDBC API中的接口和类的引入如下表:
DriverManager类根据不同的数据库管理相应的JDBC驱动程序。您可以通过DriverManager类的GetConnection()方法获得数据库连接对象(即,是连接对象)。连接界面由DriverManager生成,以连接数据库语句接口是通过连接生成的,以执行SQL语句,例如添加,删除,修改和检查。。})。准备序列也是通过连接生成的,也用于执行SQL语句,例如添加,删除,修改check.com。与语句接口相比,语句具有更高的安全性(可以防止SQL注入,例如隐藏的危险,例如SQL),更高的性能,更高的可读性和维护。paredStatement(该接口的定义是:公共接口callialStatement扩展了准备的准备{...})。结果集界面接口在收到语句对象(或准备好的statement对象)后执行查询操作后接收结果。从开发,JDBC API主要完成三件事:
JDBC驱动程序由各种数据库制造商或第三方制造商提供,以实现不同数据库的JDBC API。JDBC API。当使用JDBC连接数据库时,只要正确加载JDBC驱动程序,您就可以通过调用JDBC API来操作数据库
在使用JDBC访问数据库之前,您需要介绍相应的驱动程序包(例如Oracle数据库的驱动程序包是OJDBC版本号.jar)。在此,我们使用mySQL作为示例来介绍导入驱动程序驱动程序的步骤网络中的包装:4
将驱动程序软件包放入LIB目录后,您可以使用该方法将特定的JDBC驱动程序加载到JVM中。加载代码如下:
如果不存在指定的驱动程序名称,则会导致异常。
稍后,在代码中,可以使用连接字符串,用户名和密码等参数来获取数据库连接对象。JDBC驱动程序袋名称,驱动程序类别名称和常见关系数据库的连接字符串如下:如下:
Oracle Ojdbc版本号码.jar oracle.jdbc.odriver jdbc:oracle:thin:@localhos t:1521:数据库entity name mysql mysql-connector-java-java-java-bin.jar com.mysql.mysql.cjdbc.database jdabase jdabase name name组成,示例中的本地主机可以用服务器的IP地址替换。1521、3306和1433是Oracle三个数据库MySQL和SQLServer的默认端口号。
当调用程序使用Java命令运行程序时,您需要使用以下命令将其添加到ClassPath中。假设它如下:
JDBC使用类来管理驱动程序并通过其获得连接对象。代码如下:
界面的常见方法如下:
语句createStatement()抛出SQLEXCOPTION创建语句对象准备的prepaArestatement(String sql)创建准备好的对象4以通过对象获取或对象,并通过对象将SQL语句发送到数据库。
语句对象
发送“增加,删除,更改”类型SQL语句:
发送“查询”类型SQL语句:
如果SQL语句增加,删除和修改,将返回一种结果,这意味着有多少行受到影响,即增加,删除和更改一些数据;如果SQL语句是查询,则数据库将返回结果集。结果,该集合包含SQL查询的所有结果。
对象的常见方法如下表:
int executeUpdate()用于执行插入,更新,删除和ddl(例如创建表...和drop table ...)。对于诸如创建表或drop表的DDL类型,executeUpdate的返回值为零.ResultSet executeQuery()用于执行SELECT查询语句。返回值是结果集类型的结果集。void close()关闭语句对象。对于或等待DDL类型语句,返回值始终为零。
对于执行查询语句,返回值是结果的一种。
关闭对象。
首先启动mysql以创建数据库和表,每个字段的名称和类型
提供的方法
执行方法汇编和操作
以上是增加方法的细节。如果要执行删除操作,则只需要在上述代码中修改该方法的SQL参数,如下所示:
同样,如果要执行修改操作,则只需要修改方法中的SQL参数,如下所示。
增加删除和修改操作之间的唯一区别是该方法中的SQL语句。
查询数据库和添加,删除和修改操作的步骤基本相同
执行方法可以在学生表中查询所有Stuno,震荡和Stuage字段值。
编译运行:
如果它是基于类型名称变量的模糊查询,则可以将查询SQL语句写为以下表单。
请注意双方的单个报价。
编写代码时,对象的使用步骤基本相同,除了方法参数的详细信息和返回值之间存在差异。请仔细阅读以下程序中的代码,并将其与添加和删除和删除和比较该方法的修改操作。
可以看出,此次使用,删除和更改的此次使用的添加,删除和修改操作之间的差异如下:
如果使用了模糊的查询,则可以将通行证添加到该方法的第二个参数(例如)。例如,查询代码如该名称的名称如下。
应该注意的是,如果使用它,当需要SQL语句时,则必须添加单个引号,例如,如果使用它,则不需要添加它,例如:
并可以实现诸如其他,删除,修改和调查之类的操作。但是,在实际开发中,通常建议使用。因为两者具有以下优势。
提高代码的可读性和维护可以避免繁琐的SQL语句缝合操作。例如,如果SQL语句,如果字段值由变量()表示,则在执行时,需要编写:
而且,如果您以方式执行它,则可以首先使用参数值作为参数值的位置,然后使用该方法的特定值来避免SQL语句的剪接操作。
当使用SQL语句的性能将SQL语句发送到数据库时,数据库将分析和编译SQL语句,并缓存分析和汇编的结果。但是在使用过程中,这些缓存结果仅适用于确切的确切的缓存结果相同的SQL语句(SQL主题和剪接SQL参数是相同的)。从另一个角度来看,如果SQL的SQL主体相同,但是缝线的参数是不同的,则先前缓存的结果不会是二手,这将严重影响缓存的使用效率。
并且它不会完全编译SQL语句,而是采用预编辑机制:仅编译SQL主体并不会编译SQL参数。在SQL语句中无事可做),可以重复使用相同的缓存。这与Java China方法的调用过程类似:Java编译器将提前编译定义的方法(但是该方法的参数值将不编译方法)。数据库缓存的利用率,从而提高性能。
但是,应该注意的是,尽管执行重复的SQL语句时具有高性能,但如果仅执行一次或几次SQL语句,则性能较高。
提高安全性并有效防止使用SQL注入使用,以下代码可用于登录验证。
上面的代码看起来没问题,但是想象一下,如果用户输入的UNAME值是UPWD的值,SQL语句的结果如下:
在此SQL语句中,将永远建立条件,然后使用后续的SQL语句来注释,这会导致隐藏的安全危害(SQL注入),因此可以成功记录不存在的用户名和密码。
该方法中传输的任何数据都不会用已编译的SQL语句缝制,因此可以避免使用SQL。总而言之,在实际开发中建议使用操作数据库。
调用MySQL中的存储过程(无返回值),将数据库切换到上一节中创建的Shiyan,然后创建一个存储过程。SQL脚本如下所示。
使用JDBC调用刚刚创建的存储过程,请参阅程序列表以获取详细信息。
将存储函数(带有返回值)调用MySQL中的数据库的首先切换到上一节中用于创建存储功能的Shiyan。SQL脚本显示在程序列表中。
使用JDBC调用刚刚创建的存储功能,请参阅程序列表以获取详细信息。
JDBC连接数据库:键,
1加载数据库驱动程序
2获取数据库连接
3通过连接,获取操作数据库语句的对象
4通过executeQuery()实现数据库的查询,然后返回结果集(结果包括所有查询数据)
字符串querysql =“ sql语句”;
rs = stmt.executequery(querysql);
该代码可以用作模板。您自己使用时,修改数据库名称并修改SQL语句。