JDBC基础教程
本文实例讲述了JDBC基础知识与技巧。分享给大家供大家参考。具体分析如下:
1.什么是JDBC?
通俗来讲JDBC技术就是通过java程序来发送SQL语句到数据库,数据库收到SQL语句后执行,把结果返回给java程序管理。
2.使用JDBC要有什么条件呢?
A)目标数据库主机的地址
B)数据库软件在该主机上所占用的端口号
C)登陆数据库用的用户名
D)该用户名的密码
E)连接数据库
3.JDBC技术的原理
我们知道,数据库是有各种类型的,不同的厂商生产的数据库标格和规范是不同的,这时候,如果我们用JAVA代码来发送SQL语句,就要根据不同的数据库来写一套又一套的操作代码,这对程序开发者的开发成本是十分巨大的,所以,SUN公司在开发JDBC技术的时候,规定了一套标准接口,数据库产商都必须提供一个驱动来实现这套接口,那么,只要程序开发者在开发时使用了该数据库的驱动,就用一致的方法来开发了,而不需自己写一套有一套的代码去适应不同的数据库。
4.JDBC中的核心API
|-Driver:驱动程序类实现的接口。
|-Connectionconnect(Stringurl,Propertiesinfo) --用于连接数据库,得到连接对象
Properties里需要设置的参数:
url:数据库连接的URL字符串。协议+数据库子协议+主机+端口+数据库
user:数据库用户名
password:用户的密码
|-Connection: 与数据库连接的接口
|-StatementcreateStatement() --创建Statement对象,用于发送sql语句
|-PreparedStatementprepareStatement(Stringsql) -创建PreparedStatement对象,用于发送预编译的sql语句
|-CallableStatementprepareCall(Stringsql) --创建CallableStatement对象,用于调用存储过程。
|-Statement:用于执行静态sql语句
|-intexecuteUpdate(Stringsql) --执行更新操作(DDL+DML)
|-ResultSetexecuteQuery(Stringsql) --执行查询操作(DQL)
|-PreparedStatement:用于执行预编译的sql语句
|-intexecuteUpdate()--执行更新操作
|-ResultSetexecuteQuery() --执行查询操作
|-CallableStatement:用于执行存储过程的sql
|-ResultSetexecuteQuery() --调用存储过程
|-ResultSet:结果集。用于封装数据库的查询后的数据
|-booleannext()--将记录光标移动到下一行
|-ObjectgetObject(intcolumnIndex)--得到字段上的值
了解完又哪些API,下面我们就来使用JDBC发送SQL语句吧~
5.使用Statement对象操作数据库
DDL与DML操作
步骤1
导包,因为我使用的是MySQL数据库,所以要使用JDBC技术,必须使用由MySQL数据库产商提供的数据库驱动,所以,第一步我们要把数据库驱动包导入工程里。
使用的包名:mysql-connector-java-5.1.7-bin.jar
步骤2
创建一个普通的类,在里面添加一个方法,在该方法中按照以下步骤
//URL privateStringurl="jdbc:mysql://localhost:3306/vmaxtam"; //user privateStringuser="root"; //password privateStringpassword="root";
publicvoidtestDDL()throwsException{ //1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取连接 Connectionconn=DriverManager.getConnection(url,user,password); //3.创建Statement对象 Statementstmt=conn.createStatement(); //4.准备sql语句 Stringsql ="CREATETABLEstudent(sidINTPRIMARYKEY,snameVARCHAR(20),ageINT)"; //5.通过statement对象发送sql语句,返回执行结果 intcount=stmt.executeUpdate(sql); //6.打印执行结果 System.out.println("影响了"+count+"条记录"); } //7.关闭资源 if(statement!=null) { statement.close(); }
if(conn!=null) { conn.close(); }