一、初识jdbc
1.简介
JDBC
的全称是:Java Database Connectivity,即Java数据库连接。
JDBC是sun公司提供一套用于数据库操作的接口,java程序员只需要面向这套接口编程即可。不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动
2.为什么需要jdbc
JDBC
是java数据库连接技术的简称,提供连接各种常用数据库的能力
3.JDBC的工作原理
4.要用的包介绍
DriverManager类 :依据数据库的不同,管理JDBC驱动
Connection接口 :负责连接数据库并担任传送数据的任务
Statement接口 :由 Connection 产生、负责执行SQL语句
ResultSet接口:负责保存Statement执行后所产生的查询结果
二、正式学习
1.导包
见另一篇文章:
2.查询的学习
//第一步,声明必要的属性
String driver="com.mysql.jdbc.Driver";//与数据库操作需要加载mysql-connector的驱动地址
String url="jdbc:mysql://localhost:3306/user_db";//数据库连接地址,"jdbc:mysql://连接地址/数据库名"
String name="root";//用户名称
String pwd="ok";//密码
Connection conn=null;//数据库连接
PreparedStatement pstmt=null;//负责执行SQL语句
ResultSet rs=null;//负责保存结果
try {
//第二步,加载驱动,会抛出异常所以需要用t-c处理
Class.forName(driver);
//第三步,获取连接
conn = DriverManager.getConnection(url,name,pwd);
String sql="select * from user";//声明需要执行的查询sql语句
pstmt=conn.prepareStatement(sql);
//第四步,执行
rs=pstmt.executeQuery();
//第五步,遍历
while(rs.next()){
System.out.println(rs.getObject(1)+"--"+rs.getObject(2)+"--"+rs.getObject(3)+"--"+rs.getObject(4));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
//释放资源,此时会抛出异常我们需要t-c处理,因为释放资源是一定要做的事所以放在finally中
conn.close();
pstmt.close();
rs.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
3.增删改的学习
//第一步,声明必要的属性
String driver="com.mysql.jdbc.Driver";//与数据库操作需要加载mysql-connector的驱动地址
String url="jdbc:mysql://localhost:3306/user_db";//数据库连接地址
String name="root";//用户名称
String pwd="ok";//密码
Connection conn=null;//数据库连接
PreparedStatement pstmt=null;//负责执行SQL语句
int rs=0;//负责保存结果
try {
//第二步,加载驱动,会抛出异常所以需要用t-c处理
Class.forName(driver);
//第三步,获取连接
conn = DriverManager.getConnection(url,name,pwd);
String sql="delete from user where id=?";//声明需要执行的sql语句,?可以理解为站位符
pstmt=conn.prepareStatement(sql);
pstmt.setObject(1, 10);//向第一个?的位置填充数据,依次类推
//第四步,执行修改的sql时调用,返回影响行数
rs=pstmt.executeUpdate();
System.out.println(rs);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
//释放资源,此时会抛出异常我们需要t-c处理,因为释放资源是一定要做的事所以放在finally中
conn.close();
pstmt.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}