我的学习JDBC之路

//4.执行sql

int row = st.executeUpdate(sql);

System.out.println(row);

} catch (Exception e) {

e.printStackTrace();

}finally {

//5.释放资源

if(st!=null) {

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.forName(“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

基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

turn null;

}

@Override

基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-XkngmMwD-1714717384543)]

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

[外链图片转存中…(img-VbUA6Dfd-1714717384544)]

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值