ddl语句使用java解析实例_jdbc增删改查


一、执行DDL语句

数据定义语言(Data Definition Language),在JDBC中需要获取Statement类对象,然后使用Statement类对象发起

现在尝试通过JDBC在数据库中创建表:


// 参数:


这里使用了Statement类的executeUpdate()方法来执行DDL语句,这个方法对于 SQL 数据操作语言 (DML) 语句,将返回行计数。由于这个示例是创建一张表,所以executeUpdate()方法返回0。

二、执行DML语句

数据操纵语言(Data Manipulation Language),JDBC同样使用Statement类的executeUpdate()方法来执行DML语句。

现在尝试往刚才创建的Student表中插入一条数据:


//省略参数代码。。。


执行成功,打印count输出1,表示影响了数据表中的一行记录。

查看数据表果然插入了一条记录:


ddl语句使用java解析实例_ddl语句使用java解析实例_02


三、执行DQL语句

查询语言(Data Query Language),需要通过Statement类的executeQuery()方法来执行SQL查询语句。

下面尝试使用DQL语句查询Student表的内容:


//省略参数代码。。。


查询结果:


ddl语句使用java解析实例_ddl语句使用java解析实例_02


executeQuery()方法会返回一个ResultSet对象,需要借助ResultSet的next()方法来做移动游标的操作,以遍历查询结果的每一行记录。另外ResultSet有诸如getXXX()的方法用于取得每一行记录中的每一个分量。

四、使用预编译的方式执行SQL语句(推荐)

PreparedStatement类(Statement类的子类)发送SQL语句,PreparedStatement类使用预编译的方式来构建JAVA应用程序和数据库的交互。

现在使用预编译SQL的方法向Student表中插入一行记录:


//省略参数代码。。。


插入一条记录成功!

PreparedStatement与Statement的区别在于:

  • 语法不同:PreparedStatement可以使用预编译的sql,而Statment只能使用静态的sql
  • 效率不同: PreparedStatement可以使用sql缓存区,效率比Statment高。(预编译SQL语句被缓存在数据库中,JAVA程序只需要传送参数给数据库,减少了数据传输量。)
  • 安全性不同: PreparedStatement可以有效防止sql注入,而Statment不能防止sql注入。

综上,因此强烈推荐使用预编译SQL的方式来与数据库进行交互。

当然PreparedStatement也能用于执行DDL与DQL,现在使用预编译SQL的方式来查询Student表中Sno字段为"201215129"的学生的姓名:


//省略参数代码。。。


控制台输出结果:


ddl语句使用java解析实例_SQL_04


查询结果正确!