JDBC
1,概念和本质
Java DataBase Connectivity Java 数据库链接, Java语言操作数据库
JDBC的本质:是一套操作所有关系型数据库的规则(接口)而JDBC所有的实现类,数据库驱动jar包,都由数据库的厂商自己实现。我们可以用这套接口进行编程,但真正执行的代码是驱动jar包的实现类。
## 2,快速入门
-
步骤
-
1,导入驱动jar包
网上搜一下,记得注意版本,不同数据库的版本是不一样的!
-
2,注册驱动
Class.forName("com.mysql.jdbc.Driver");
-
3,获取数据库链接对象 Connection
-
DriverManager类的静态方法getConnection获取Connection对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localgost(这里想主机名):3306(这里是端口号)/zhoupeng(数据库名)","root","root");
-
-
4,定义sql语句
String sql="update book set `bauthor`='南派三叔' where `bid`='b1'"; 这里sql语句后面不要加分号
-
5,获取执行sql语句的对象 Statement
-
Connection对象调用createStatement方法,获取Statement对象
Statement statement = connection.createStatement();
-
-
6,执行sql,接受返回结果
int i = statement.executeUpdate(sql);
-
7,处理结果
System.out.println(i==1?"操作成功":"操作失败");
-
8,释放资源
connection.close(); statement.close();
2,对象详解
1,DriverManager :驱动管理对象
功能
-
驱动注册
static void registerDriver(Driver driver) 向 DriverManager 注册给定驱动程序。
写代码使用:Class.forName("com.mysql.jdbc.Driver");
通过查看源码可知,com.mysql.jdbc.Driver 这个类中存在静态代码块如下
static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } }
这里我们就会发现,实际上注册驱动的,是 DriverManager.registerDriver(new Driver()) 这句代码,所以在代码中,实际上进行注册的是 DriverManager 这个类
所以所谓的注册驱动,事实上是告诉程序,我们在使用哪个数据库
注意:
在mysql5之后的版本,这一步实际上是可以省略的!
-
获取数据库连接
方法:
static Connection getConnection(String url , String user , String password);
参数:
url:指定连接的路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称 例子:jdbc:mysql://localhost:3306/zhoupeng; 这里说一下,如果连接的是本地mysql,并且mysql的默认端口号是3306,那么url可以简写为: jdbc:msyql:///数据库名;
user:用户名
password:密码
2,Connection :数据库连接对象
功能
-
获取执行sql对象
Statement createStatement() PreparedStatement prepareStatement(String sql)
-
管理事务
开始事务
viod setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
提交事务
viod commit()
回滚事务
void rollback()
3,Statement :执行sql对象
执行sql:
int executeUpdate(String sql) ;
执行DML(增删改)语句,DDL(对表和库的操作)语句
但一般只用于DML语句
这个返回值,表示的是影响行数!我们可以通过影响的行数,判断DML语句有没有执行成功
ResultSet executeQuery(String sql)
执行DQL(select)语句
4,ResultSet :结果集对象,封装查询结果
方法:
boolean next() 游标向下移动一行
判断当前这一行是否有数据,有数据返回true
没有数据返回false
getXxx(参数):获取数据
XXX:代表数据类型,,比如:int getInt() String getString()
参数:
1, int : 代表列的编号,从1开始 如:getString(1)
2, String : 代表列的名称, 如: getInt("id")
遍历 ResultSet :
a1是 ResultSet 类型
for (; a1.next() ; ) {
System.out.println(a1.getString(1)+"----"+a1.getString(2)+"----"+a1.getString(3)+"----"+a1.getString(4));
}
5,PreparedStatement :功能更加强大的执行sql对象
标签:DriverManager,JDBC,String,别太,数据库,mysql,jdbc,sql,嘿嘿嘿 From: https://www.cnblogs.com/fssnjcl/p/16964387.html