JDBC【Java连接数据库】
一、JDBC简介:
JDBC:Java Database Connection 1、JDBC:JDBC是Java和数据库连接的一种技术,提供连接各种数据库的能力
二、JDBC工作原理:
Java应用程序:我们自己写的
JDBC API:由SUN公司提供给用的接口和类,集成在java.sql和javax.sql包中 Connection、PreparedStatement、ResultSet
DriverManager:由SUN公司提供,用来管理各种数据库驱动
JDBC驱动:由数据库厂商提供,负责连接不同的数据库,表现为一个jar包
三、JDBC API
JDBC API负责:与数据库建立连接、执行SQL语句、处理结果 DriverManager :依据数据库的不同,管理JDBC驱动 Connection :负责连接数据库并担任传送数据的任务 Statement :由 Connection 产生、负责执行SQL语句 ResultSet:负责保存Statement执行后所产生的查询结果
四、JDBC驱动
(1)JDBC驱动由数据库厂商提供 (2)连接方式:
①JDBC-ODBC桥接方式:把对JDBC API的调用,转为对一组数据库连接API的调用 优点:可以访问所有ODBC可以访问的数据库 缺点:执行效率低、功能不够强大 注:控制面板——管理工具——ODBC数据源——系统DNS——添加:能添加即支持,不支持MySQL
②纯Java驱动连接:由JDBC驱动直接访问数据库 优点:100%Java,速度快、跨平台 缺点:连接不同的数据库需要下载使用不同的JDBC驱动
五、JDBC连接数据库操作的七步
[数据库驱动jar包的添加方式在文章末尾处有详细介绍]
以增加为例:
(1)加载驱动 Class.forName("com.mysql.jdbc.Driver"); (2)创建连接 Connection c=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名","root","root"); (3)编写sql String s="insert into user values(1,'张三')"; (4)创建PreparedStatement对象预处理sql PreparedStatement ps=c.preparedStatement(s); (5)执行并返回结果 int i=ps.executeUpdate(); (6)处理结果 System.out.println(i); (7)关闭连接 ps.close(); c.close();
六、字符串处理
在sql语句中,如果值是字符串,那么就可以用变量累加进去,变量的值就可以灵活的使用扫描仪来输入
String name="张三"; String s="insert into user values(1,'"+name+"')";
七、占位符
字段值除了可以使用变量累加,还可以使用占位符占位,再通过对应的set方法来输入值
占位符有顺序,即每个字段在表中的顺序
int a=1; String name="李四"; String s="insert into user values(?,?)"; ps.setInt(1,a); ps.setString(2,name);
八、查询
查询返回的是结果集,用ResultSet处理;调用执行使用executeQuery()方法
(5)执行并返回结果 ResultSet rs=ps.executeQuery(); (6)处理结果
对结果处理,用next()方法判断是否存在下一个数据,有则放在rs集合中
while(rs.next()){ System.out.println(rs.getInt("userid")+":"+rs.getString("username")); }
(7)关闭连接 rs.close(); //先关闭结果集 ps.close(); c.close;
注:可以用字段列的顺序来获取字段值 但是不推荐,因为如果列很多时,只需有某几列,就要数需要的列是第几列 while(rs.next()){ System.out.println(rs.getInt(1)+":"+rs.getString(2)); }
九、jdbc驱动的jar包的添加方式:
1、直接在库目录中添加
File—Project Structure—Libraries—+—Java—找到jar包的目录—OK—选择模块(一定要选中对应的模块)—OK即可
2、在模块下添加依赖
创建文件夹lib》把.jar文件复制到该文件夹中》右键》添加到库