JDBC六步曲(以jdbc8.x为例)
第一步:导包
- 导包:在工程里创建一个文件夹lib,找到下载好的jdbc驱动包的jar包
mysql-connector-java.jar
复制粘贴到当前工程的lib文件夹内。点开 lib目录,鼠标右击mysql-connector-java.jar
压缩包,点击Add as Library ,点击OK就可以了。
1.复制粘贴然后点击OK
2.鼠标右击选择Add as Library,然后点击OK就可以了。
第二步:加载驱动类
- 加载驱动类:
//2.加载驱动类
String className = "com.mysql.cj.jdbc.Driver";
Class.forName(className);
知识点:
有5种方式可以加载驱动类
第一种:Class.forName(className);
第二种:DriverManager.registerDriver(new Driver());
第三种:new Driver();
第四种:System.setProperty(“jdbc.driver”,”com.mysql.cj.jdbc.Driver”);
第五中:可以不写,但是性能不高。
第三步:获取连接
- 获取连接:
//3.获取连接
String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
/**这是个固定格式。"jdbc:数据库名://ip地址:端口号/数据库名?serverTimezone=UTC"*/
//mysql表示MySQL数据库,如果是Oracle数据库就改为oracle。
String user = "root";//表示数据库
String password = "123456";//数据库密码
Connection conn = DriverManager.getConnection(url,user,password);
String sql = "SELECT * FROM ATM WHERE ANAME=?";//查询
第四步:创建状态参数
- 创建状态参数:
//4.创建预处理状态参数
PreparedStatement pstate = conn.prepareStatement(sql);
pstate.setString(1,aname);
第五步: 执行数据库操作
- 执行数据库操作:
//5.执行数据库操作
ResultSet rs = pstate.executeQuery();//调用查询的方法
//state.executeUpdate();//insert delete update 都调用这个方法
while (rs.next()){//判断是否有下一行
String name = rs.getString("name");
String sex = rs.getString("sex");
String age = rs.getString("age");
String address = rs.getString("address");
System.out.println(name+"--"+sex+"--"+age+"--"+address);
}
知识点:
1)执行executeQuery();//查询语句的方法
2)执行executeUpdate();//增删改语句的方法
返回值是ResultSet类型,本质类似于Set<Map<String,Object>>:比如查询一条语句,将列名作为key,列名可以默认为String类型。查询所得的值作为value,value可以是多种类型的,因而用object存储。如果查询多条语句,则需要多个map集合,而多个map集合用set集合存储,可用迭代器来获取。
补充:
rs.getXXX(列的序号int–从1开始);
rs.getXXX(“列名字”);
rs.getString();//可以接收任何一个列的值,什么类型都可以
rs.getInt();//不能接收其他类型,比如String
第六步:关闭流
- 关闭流:先连接的后关(倒着关闭)
//6.关闭流
rs.close();
state.close();
conn.close();
总结
public class AtmDao {
Atm atm = new Atm();
public Atm selectOne(String aname){
String className = "com.mysql.cj.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/atm?serverTimezone=UTC&characterEncoding=utf8";
String user = "root";
String password = "123456";
String sql = "SELECT * FROM ATM WHERE ANAME=?";
Connection conn = null;
PreparedStatement pstate = null;
ResultSet rs = null;
try {
Class.forName(className);//加载驱动
conn = DriverManager.getConnection(url,user,password);//获取连接
pstate = conn.prepareStatement(sql);//创建预处理状态参数
pstate.setString(1,aname);
rs = pstate.executeQuery();
if (rs.next()){//判断是否找到一行数据
atm.setAname(rs.getString("aname"));
atm.setApassword(rs.getString("apassword"));
atm.setAbalance(rs.getFloat("abalance"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if (rs != null){
rs.close();
}
}catch (Exception e){
e.printStackTrace();
}
try {
if (pstate != null){
pstate.close();
}
}catch (Exception e){
e.printStackTrace();
}
try {
if (conn != null){
conn.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return atm;
}
}
补充:jdbc驱动包的不同版本使用的不同区别
JDBC驱动包5.x
1)加载驱动类:”com.mysql.jdbc.Driver”
2)获取连接 url—>jdbc:mysql://ip:port/databases名
JDBC驱动包8.x
1)加载驱动类:”com.mysql.cj.jdbc.Driver”
2)获取连接 url—>jdbc:mysql://ip:port/databases名?serverTimezone=UTC
留言:到这里 JDBC基本的知识 就总结完毕了,想要学习更多的伙伴可以查看博主主页哦 ~