jdbc的主要功能:
1.建立与数据库或其他数据源的链接
2.向数据库发送sql命令
3.处理数据库的返回结果
jdbc应用到的常用类和接口
1.驱动程序管理类DriverManager
DriverManager类是JDBC的管理类,作用于用户和驱动程序之间。它跟踪在可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登陆时间限制及登录和跟踪消息的显示事务。对于简单的应用程序,一般在此类中直接使用唯一的方法DriverManager.getConnection()。
2.容器类Statement
它的对象都做为能够发送sql数据的容器存在,可以理解为,通过相应的方法可以得到它的相应的三种对象,即三种主要作用(存储,运送)相同的sql语句容器!
有三种分别为:
Statement(使用它做为容器时有sql注入的漏洞,有危险!放弃!)
PreparedStatement(它从Statement继承而来)
CallableStatement(它从PreparedStatement继承而来)
1.Statement对象用于执行不带参数的简单的SQL语句;Statement接口提供了执行语句和获取结果的基本方法。
2.PerparedStatement对象用于执行带或不带IN参数的预编译SQL语句;PeraredStatement接口添加处理IN参数的方法;
3.CallableStatement对象用于执行对数据库已存储过程的调用;CallableStatement添加处理OUT参数的方法。
Statement的相应的方法
- execute()方法:运行语句,返回是否有结果集。
- executeQuery()方法:运行查询语句,返回ReaultSet对象。
- executeUpdata()方法:运行更新操作,返回更新的行数。
- addBatch()方法:增加批处理语句。
- executeBatch()方法:执行批处理语句。
- clearBatch()方法:清除批处理语句。
数据库连接类Connection
Connection对象代表与数据库的链接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。
一个应用程序可与单个数据库有一个或多个连接,或者可与很多数据库有连接。打开连接与数据库建立连接的标准方法是调用DriverManager.getConnection()方法
结果集合类 ResultSet
ResultSet包含符合SQL语句中条件的所有行记录,并且它通过一套get方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。ResultSet.next()方法用于移动到ResultSet中的下一行,使下一行成为当前行。
5.java数据库连接操作
- 加载驱动程序:Class.forName(driverClass)
加载mysql驱动:Class.forName(“com.mysql.jdbc.Driver”);
加载oracle驱动:Class.forName(“oracle.jdbc.driver.OracleDriver”); - 获得数据库连接
?useUnicode=true&characterEncoding=UTF-8这行代码主要是用作对字符编码方式和字符编码前后不统一所引起的解码不一致问题所表现出来的中文乱码问题!做出规定:规定对数据以Unicode编码以Unicode中的utf-8字符编码方式处理。
String url = “jdbc:mysql://127.0.0.1:3306/数据库库名?useUnicode=true&characterEncoding=UTF-8”;
String user = “数据库用户名”;
String password = “数据库密码”;
DriverManager.gerConnection(URL,user,password);
4.写承接语句的字符串
String sql = “select *from 数据库”;
3.获得Statement对象
PreparedStatement ps =conn.prepareStatement(sql);
下赋代码片段:
1.需要注意我的
这里写代码片
package com.lyb.JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
/*第一步,向src下导入.jar包mysql-connector-java-5.1.32.jar
src右键选择Build Path 选择Configure Build Path选择Libraries选择
Add External JARs确定之后可以在本机的文件系统中找到自己的.jar文件选择导入
视版本差异:右下角会有apply即将其增加到当前工程或eclipse会自动添加,选择确定引入.jar包即可!
*/
//第二步,加载驱动
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/youxidata?useUnicode=true&characterEncoding=UTF-8";
String user = "root";
String password = "123456";
//第三步,创建数据库连接
Connection conn =DriverManager.getConnection(url, user, password);
String sql = "select *from guaiwudata";
PreparedStatement ps =conn.prepareStatement(sql);
ps.executeQuery(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
System.out.println("灵魂印记"+rs.getInt("linghunyinji"));
System.out.println("名字:"+rs.getString("gwname"));
System.out.println("攻击力 "+rs.getInt("gwgongjili"));
System.out.println("防御力 "+rs.getInt("gwfangyuli"));
System.out.println("生命值 "+rs.getInt("gwshengmingzhi"));
}
rs.close();
ps.close();
conn.close();
}
}