标签:本质 服务器 reg word 类加载 lan 字符 resultset 本机
概念:Java DataBase Connectivity,java
数据库连接,java语言操作数据库
JDBC本质:其实是官方定义的一套操作所有关系型数据库的规则,即接口.各个数据库产商去实现这个接口,提供数据库确定jar包.这套接口编程,真正执行的是驱动jar包的实现类
快速入门
Connection
Statement
详解各个对象
DriverManager
:驱动管理对象
mysql-connection-java5.0
之后可以不需要注册驱动)
static void registerDriver(Driver driver)
:注册用户给定的驱动程序DriverManager
.Class.forName("com.mysql.jdbc.Driver");
将该类加载入内存.通过查看源码发现,在com.mysql.jdbc.Driver
类中存在静态代码块.静态代码块在程序执行时自动执行,那么可以看到加载类时真正运行的是java.sql.DriverManager.registerDriver(new Driver());
这句话static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can‘t register driver!");
}
}
static Connection getConnection(String url, String user, String password)
:尝试建立与给定数据库URL的连接。jdbc : mysql://ip地址或域名:端口号/数据库名称
jdbc : mysql:///数据库名称
Statement createStatement()
PreparedStatement prepareStatement(String sql)
void setAutoCommit(boolean autoCommit)
调用该方法,设置参数为false,即开启事务void commit()
void rollback()
boolean execute(String sql)
:可以执行任意的sql.int executeUpdate(String sql):执行DML(insert,delete,update),DDL(create,alter,drop)
语句,返回值是影响的行数ResultSet excuteQuery(String sql)
:执行DQL语句(select)
boolean next()
:游标向下移动一行,判断当前是否是最后一行末尾(是否有数据),如果是,则返回false(没有数据),如果不是则返回true(有数据)int getInt()
//循环判断游标是否是最后一行末尾
while (resultSet.next()){
int id=resultSet.getInt("id");
String name=resultSet.getString("name");
int balance=resultSet.getInt("balance");
System.out.println("id---"+id+"---name---"+name+"---balance---"+balance);
}
public List<Emp> findAll()
select * from emp;
PreparedStatement
:执行sql的对象
PreparedStatement
:用于执行预编译的SQL语句select * from user where username = ? and password = ?
(PreparedStatment):Connection.preparedStatment(String sql)
PreparedStatment
来完成增删改查的操作
总结
Class.forName("com.mysql.jdbc.Driver");
String sql;
DriverManager.getConnection("jdbc : mysql://ip地址或域名:端口号/数据库名称", "账户", "密码");
statement=connection.createStatement();
statement.executeUpdate(sql)
; 执行DML(insert,delete,update),DDL(create,alter,drop)
语句,返回值是影响的行数statment.excuteQuery(sql)
:执行DQL语句(select),返回一个ResultSet结果集合statment.excute(sql)
:执行所有的sql语句,返回boolean值setAutoCommit(boolean autoCommit)
:调用该方法设置参数false,即开启事务
commit()
rollback()
标签:本质 服务器 reg word 类加载 lan 字符 resultset 本机
原文地址:https://www.cnblogs.com/acknowledge/p/13282159.html