我的学习JDBC之路

try {

st.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(conn!=null) {

try {

conn.close();

} catch (Exception e2) {

// TODO: handle exception

}finally {

}

}

}

}

}

[](()4.执行DQL(Query)操作

===================================================================================

[](()ResultSet:执行DML操作和执行DDL操作是一样,只有sql语句发生了变量

[](()常用方法:

[](()# boolean next():判断是否有下一行数据,若有,则向下移动一行指针.
[](()# getXxx(String columnName):获取当前行中的,指定列名的列的值.columnName是列名/列的别名
[](()# 若列的类型是VARCHAR/CHAR/TEXT,都使用getString来获取列的值.
[](()# 若列的类型是int/integer/–>getInt来获取列的值.

[](()执行sql:

[](()# executeQuery(Sql)会得到一个结果集,(多行数据)

//查询所有*,获得结果集

void test1() throws Exception{

//1.获取连接对象

String url = “jdbc:mysql://localhost:3306/jdbc”;

String user = “root”;

String password = “123456”;

//2.加载驱动

Class.forName(“com.mysql.jdbc.Driver”);

//3.连接数据库

Connection conn = DriverManager.getConnection(url,user,password);

//4.编写sql语句

String sql = “SELECT * FROM stu”;

Statement st = conn.createStatement();

//5.执行sql语句,返回结果存于结果集

ResultSet res = st.executeQuery(sql);

//6.打印结果

while(res.next()) {

System.out.println(“id:”+res.getInt(“id”)+“-----”+“name:”+res.getString(“name”));

}

//7.释放资源

st.close();

conn.close();

}

[](()# 获了一个数据

//获取一个数据

static void test2() throws Exception{

//1.获取连接对象

String url = “jdbc:mysql://localhost:3306/jdbc”;

String user = “root”;

String password = “123456”;

//2.加载驱动

Class.forName(“com.mysql.jdbc.Driver”);

//3.连接数据库

Connection conn = DriverManager.getConnection(url,user,password);

//4.编写sql语句

String sql = “SELECT * FROM stu where name= ‘zs’”;

Statement st = conn.createStatement();

//5.执行sql语句,返回结果存于结果集

ResultSet res = st.executeQuery(sql);

//6.打印结果

if(res.next()) {

System.out.println(“id:”+res.getInt(“id”)+“-----”+“name:”+res.getString(“name”));

}

//7.释放资源

st.close();

conn.close();

}

[](()5.DAO思想养成计划

==============================================================================

[](()什么是DAO?看图

在这里插入图片描述

[](()为什么要使用DAO

Data Access Object(数据存取对象)

位于业务逻辑和持久化数据之间

实现对持久化数据的访问

[](()不使用DAO的话?

多个地方都要都同时做CRUD操作时,重复的代码就会很多,如图所示

在这里插入图片描述

[](()接下来就是怎么做的问题了,设计规范

在这里插入图片描述

萨达别找了,上图就是粉图图一

[](()没有实际操作演示下总觉得不行,好,开干起来

根据粉图,创建相应的包和类,,如图所示

在这里插入图片描述

domian包中的Student类就是一个domain类,(什么是domain类?封装成getter和setter的就是)

package com.study.jdbc.domain;

public class Student {

String name;

Integer id;

Integer age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

}

而dao包下的Istudent是一个接口(这也是面向接口编程的思想)

package com.study.jdbc.dao;

import java.util.List;

import com.study.jdbc.domain.Student;

public interface IStudent {

/**

  • 保存一个学生

*/

public void save(Student stu);

/**

  • 删除学生

*/

public void delete(int id);

/**

  • 更新一个学生信息

*/

public void update(int id,Student stu);

/**

  • 获取指定学生

*/

public Student get(int id);

/**

  • 获取所有的学生

*/

public List getAll();

}

也许看到这里,你就明白了,StudentImpl是Istudent的一个实例,用来实现接口的具体方法,而StudentTest则是用来做单元测试的,测试某个方法是否准确无误。

没错,可以看下

StudentImpl

package com.study.jdbc.impl;

import java.sql.Connection;

import java.sql.DriverManager;

import java.util.List;

import com.study.jdbc.dao.IStudent;

import com.study.jdbc.domain.Student;

public class StudentImpl implements IStudent{

@Override

public void save(Student stu) throws Exception {

//1.获取连接对象

String url = “jdbc:mysql://localhost:3306/jdbc”;

String user = “root”;

String password = “123456”;

//2.加载驱动

Class.for 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 Name(“com.mysql.jdbc.Driver”);

//3.连接

Connection conn = DriverManager.getConnection(url, user, password);

System.out.println(conn);

}

@Override

public void delete(int id) {

// TODO Auto-generated method stub

}

@Override

public void update(int id, Student stu) {

// TODO Auto-generated method stub

}

@Override

public Student get(int id) {

// TODO Auto-generated method stub

return null;

}

@Override

public List getAll() {

// TODO Auto-generated method stub

return null;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值