不用jdbc连接mysql_JDBC01 利用JDBC连接数据库【不使用数据库连接池】

目录:

1 什么是JDBC

2 JDBC主要接口

3 JDBC编程步骤【学渣版本】

5 JDBC编程步骤【学神版本】

6 JDBC编程步骤【学霸版本】

1 什么是JDBC

JDBC是JAVA提供的一套标准连接数据库的接口,规定了连接数据库的步骤和功能;不同的数据库提供商提供了一套JDBC实现类,他们称为数据库驱动。

2 JDBC的主要接口

Connection  与数据库连接有关

DriverManager   与创建数据库连接对象有关

Statement  与执行SQL语句有关

ResultSet  与返回的结果及有关

注意:通过JDBC操作数据库是自动提交的,当然也可是设置成手动提交

3 利用JDBC操作数据库的步骤【学渣版本】

3.1 导入数据库驱动

Class.forName(“数据库驱动包”);

注意:Class.forName的底层实际上是利用的java反射机制

例如:Class.forName("com.mysql.jdbc.Driver"); //mysql驱动包的固定写法

3.2 创建连接

Connection conn = DriverManager.getConnection(“jdbc:mysql:// + IP + : + 端口 +  / + 数据库名称”,“数据库用户名”,“密码”);

注意:DriverManager是一个驱动管理类,通过调用该类的静态方法DriverManager来创建连接对象

例如:  Connection conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/test", // jdbc:mysql:// + IP + : + 端口 + / + 数据库名称

"root", // 用户名

"182838"); // 用户密码

3.3 创建语句对象

Statement state = conn.createStatement();

注意:利用连接对象来创建语句对象

3.4 执行SQL语句

ResultSet executeQuery(String sql)

用来执行查询语句(DQL)的方法,返回的是一个查询结果集

Integer executUpdate(String sql)

用来执行DML语句的方法,返回值为执行了该DML后影响了数据库中多少条数据

boolean execute(String sql)

可以执行所有类型的SQL语句,但是DQL,DML都有专门的方法,所以该方法通常

用来执行DDL语句.当返回值为true时表示该SQL语句执行后有结果集,没有结果集

的都是返回的false.(并不是根据语句的对错来返回true或者false)

注意:利用语句对象来执行SQL语句,DQL指查询,DML指修改、删除、插入,DDL指新建

注意:如果是查询语句会得到一个结果集,结果集类型是ResultSet,可对结果集进行遍历

646dc3d4c70c8d49351cdeda54e48123.png

3.5 遍历结果集

3f5696bf64d0bb2cdc9c3f4125570748.png

3.6 关闭语句对象、关闭连接对象

执行对象.close();

连接对象.close();

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1

2 4.0.0

3 cn.xiangxu

4 testJDBC

5 0.0.1-SNAPSHOT

6

7

8 mysql

9 mysql-connector-java

10 5.1.37

11

12

13 junit

14 junit

15 4.12

16

17

18

maven依赖包

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 CREATE TABLE user (2 id INT (10) PRIMARY KEY,3 name VARCHAR (10),4 pwd VARCHAR (10)5 );6

7 DESC USER;8

9 DROP TABLE user;10

11 SELECT * FROM user;

SQL语句

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 packagetestJDBC;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 importjava.sql.Statement;8

9 importorg.junit.Test;10

11 public classTestCase {12 @Test13 public voidtest01() {14 Connection conn = null;15 try{16 //01 导入驱动模块

17 Class.forName("com.mysql.jdbc.Driver");18

19 //02 初始化连接对象(以为在之前就创建了,进行初始化就行啦)

20 conn =DriverManager.getConnection(21 "jdbc:mysql://localhost:3306/test", "root", "182838");22

23 //03 创建执行对象

24 Statement state =conn.createStatement();25

26 String sql = "SELECT * FROM user ";27

28 //04 执行SQL语句

29 ResultSet rs = state.executeQuery(sql); //查询结果的类型为ResultSet30

31 //05 遍历查询结果

32 while(rs.next()) { //遍历结果集

33 System.out.println(rs.getString("name"));34 }35

36 //06 关闭执行对象、连接对象

37 state.close();38 conn.close();39

40 } catch(ClassNotFoundException e) {41 //TODO Auto-generated catch block

42 e.printStackTrace();43 } catch(SQLException e) {44 //TODO Auto-generated catch block

45 e.printStackTrace();46 } finally{47 if(null != conn) { //判断连接是否关闭

48 try{49 conn.close();50 } catch(SQLException e) {51 //TODO Auto-generated catch block

52 e.printStackTrace();53 }54 }55 }56

57 }58 }

java代码

4 存在的问题

4.1 重复编译问题

利用 Statement对象执行SQL语句时每执行一条SQL语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值