jdbc是mysql吗_JDBC-mysql

JDBC(Java DataBase Connectivity)

称为:java访问数据库的解决方案,希望以相同的方式访问不同的数据库

目的:以实现与具体数据库无关的java操作。JDBC定义了一整套的标准接口,即访问数据库通用的API,不同的数据库厂商根据各自数据库特点去实现这些接口,从而得到java程序的访问。

1、JDBC接口

1)驱动管理(用来获取连接)

DriverManager

2)连接接口

Connection

3)语句对象(对应执行的操作)

Statement

PreparedStatement

4)结果集接口

ResultSet

2、JDBC工作流程

1)加载驱动,建立连接

2)创建语句对象

3)执行sql语句

4)处理结果集

第一种:查询(包含结果集,执行第四步)

第二种:更新(不需要去处理结果集,可省略第四步)

5)关闭连接

3、代码说明

Driver接口及驱动类加载(oracle)

Class.forName("oracle.jdbc.driver.OracleDriver");

说明:使用反射机制实例化OracleDriver驱动类(从jdbc2开始就不需要显示调用,调用getConnection()会自动加载合适的驱动。建议直接添加驱动)

con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","123456");

说明:127.0.0.1表示服务器地址(也可以用localhost)

1521表示oracle端口号

orcl表示数据库应用名

Connection只是一个接口,真正的实现是由数据库厂商提供的驱动包完成

Statement st=con.createStatement(); //创建语句对象

st.executeQuery(sql); //返回ResuitSet结果集,用于查询

st.executeUpdate(sql); //返回int,用于增加、修改、删除

说明:ResultSet结果集:执行查询sql语句返回的结果集,查询的结果存放在ResultSet对象的一系列中,最初位置是位于行首

rs.next()方法用于在行间移动,rs.getXX()方法用来取字段对应的数据

4、MySQL的Driver接口及驱动类

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

Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/student","root","1234");

5、在src下面创建文件:db.properties(.properties后缀名为这样的文件)将驱动和连接数据库的操作都放在该文件中

注意:

a. 更改编码格式为utf-8

b. 该文件存储方式是以键值对存储的(key-value)

c. 文件中使用注释是以“#”开头,中文字符存储会乱码,使用英文

6、语句对象:Statement与PreparedStatement的区别

Statement:主要用于执行静态的sql语句(表示内容固定不变的sql语句)。Statement每一次执行都要对传入的sql语句进行编译,效率低

某些情况下,sql语句只是其中的参数不同,其他的字句都是相同的,这种适合用PreparedStatement,PreparedStatement能够预防sql注入攻击问题

PreparedStatement也是一个接口,继承Statement,sql语句有提前编译(效率高)。常用的方法以被修改,方法不在需要参数。executeQuery()、executeUpdate()

如:insert into dept_xu values(?,?,?);  //用问号代替参数

PreparedStatement实例包含事先编译的sql语句,sql语句可以有一个或n个IN参数,IN参数的值在sql语句创建时未被指定,此语句为每个IN参数保留一个问号(问号作为占位符),每一个问号的值必须在执行语句之前,通过这样的setInt或setString方法提供进行赋值

PreparedStatement对象以被预编译过,其执行速度是快于Statement对象的,建议多次执行的sql语句创建为PreparedStatement对象,以提高效率,如:批处理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值