人像摄影网站有哪些,贵阳网站制作企业,网页制作app,html网页结构文件JavaWeb连接(JDBC)数据库实现增删改查
1、数据库结构
(1)、创建数据库#xff08;source_db#xff09;
(2)、创建数据表#xff08;tb_source#xff09;#xff0c;结构如下
字段名说明字段类型长度备注id编号int主键#xff0c;自增#xff0c;增量为 1name名称v…JavaWeb连接(JDBC)数据库实现增删改查
1、数据库结构
(1)、创建数据库source_db
(2)、创建数据表tb_source结构如下
字段名说明字段类型长度备注id编号int主键自增增量为 1name名称varchar50不能为空type类型varchar20不能为空uploadDate上传日期date不能为空
(3)、MySQL数据库创建表语句
# 新建表
CREATE TABLE tb_source (id int(11) NOT NULL AUTO_INCREMENT COMMENT 编号,name varchar(50) NOT NULL COMMENT 名称,type varchar(20) NOT NULL COMMENT 类型,uploadDate date NOT NULL COMMENT 上传日期,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT9 DEFAULT CHARSETutf8;# 添加测试数据
INSERT INTO tb_source VALUES (1, 二次元, 视频, 2023-04-25);
INSERT INTO tb_source VALUES (2, 国际新闻, 文件, 2023-04-24);
INSERT INTO tb_source VALUES (3, 军事热点, 视频, 2023-05-01);
INSERT INTO tb_source VALUES (4, 国际新闻, 视频, 2023-04-11);
INSERT INTO tb_source VALUES (5, 精选小说, 文件, 2023-04-05);
INSERT INTO tb_source VALUES (6, 搞笑趣事, 视频, 2023-04-01);
INSERT INTO tb_source VALUES (7, 八卦闲谈, 文件, 2023-04-16);
INSERT INTO tb_source VALUES (8, 美女热舞, 视频, 2023-04-25);
INSERT INTO tb_source VALUES (9, 美女热舞, 文件, 2023-04-25);2、新建JavaWeb项目详细步骤
(1)、设置项目名称和项目路径 (2)、完成新建一个空项目目录结构 (3)、为新建的项目添加Web工程容器 (4)、添加Tomcat工具用于启动Web项目 (5)、运行结果 3、项目文件目录结构重点了解
(1)、目录介绍 (2)、引入jar包步骤https://blog.csdn.net/qq_54693844/article/details/134259335
4、创建JDBC数据库访问类FactoryDB
(1)、创建FactoryDB类
注意点留意存放位置package com.item.source.common.jdbc
package com.item.source.common.jdbc;import java.sql.*;/*** author 为一道彩虹*/
public class FactoryDB
{private static final String URL jdbc:mysql://localhost:3306/source_db?characterEncodingutf-8;private static final String USER root;private static final String PASSWORD 123456;/** 1.加载驱动 */static{try{Class.forName(com.mysql.cj.jdbc.Driver);}catch (ClassNotFoundException e){e.printStackTrace();}}/** 2.获取数据库连接 */public static Connection GetConnection(){try{return DriverManager.getConnection(URL, USER, PASSWORD);}catch (SQLException throwables){throwables.printStackTrace();}return null;}/** 3.关闭资源 */public static void Close(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet){try{if (resultSet ! null){resultSet.close();}if (preparedStatement ! null){preparedStatement.close();}if (connection ! null){connection.close();}}catch (SQLException e){e.printStackTrace();}}/** 4.测试是否连接成功 */public static void main(String[] args){System.out.println(GetConnection());}
}(2)、测试连接是否成功 5、创建实体类Source
(1)、创建Source实体类
package com.item.source.model.entity;/*** 描述Source实体类** author 为一道彩虹*/
public class Source
{/** 编号 */private int id;/** 名称 */private String name;/** 类型 */private String type;/** 上传日期 */private String uploadDate;/** 无参构成方法 */public Source(){}/** 有参构成方法初始化 */public Source(int id, String name, String type, String uploadDate){this.id id;this.name name;this.type type;this.uploadDate uploadDate;}/** get和set方法 */public int getId() {return id;}public void setId(int id){this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getType(){return type;}public void setType(String type) {this.type type;}public String getUploadDate(){return uploadDate;}public void setUploadDate(String uploadDate) {this.uploadDate uploadDate;}
}6、创建数据访问层SourceManageDAOByJDBCImpl重点复习
(1)、首先创建对应的接口
package com.item.source.dao;import com.item.source.model.entity.Source;
import java.util.List;/*** 课程 Source DAO层* author 为一道彩虹*/
public interface SourceManageDAOByJDBC
{/*** 查询所有Source数据* return 多条数据才用ListSource接收数据*/ListSource QueryAllSource();
}(2)、创建SourceManageDAOByJDBCImpl实现类
package com.item.source.dao.impl;import com.item.source.common.jdbc.FactoryDB;
import com.item.source.dao.SourceManageDAOByJDBC;
import com.item.source.model.entity.Source;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;/*** 描述Source DAO实现层** author 为一道彩虹*/
public class SourceManageDAOByJDBCImpl implements SourceManageDAOByJDBC
{/*** 查询所有Source数据* return 多条数据才用ListSource接收数据*/Overridepublic ListSource QueryAllSource(){// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;ListSource sourceList new ArrayList();try{// SQL 语句String SQL SELECT * FROM tb_source;// 执行 SQL 语句preparedStatement connection.prepareStatement(SQL);// executeQuery 执行查询操作 得到查询结果集合resultSetresultSet preparedStatement.executeQuery();while (resultSet.next()){// 创建 Source 实体接收对应数据Source source new Source();source.setId(resultSet.getInt(id));source.setName(resultSet.getString(name));source.setType(resultSet.getString(type));source.setUploadDate(resultSet.getString(uploadDate));// 添加到sourceList,用于返回数据sourceList.add(source);}}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection,preparedStatement,resultSet);}return sourceList;}/** 测试对应操作是否成功 */public static void main(String[] args){// 创建SourceManageDAOByJDBCImpl对象SourceManageDAOByJDBCImpl daoImp new SourceManageDAOByJDBCImpl();// 调用 QueryAllSource 方法ListSource sourceList daoImp.QueryAllSource();// 循环输出for (Source source : sourceList){System.out.print(source.getId() \t);System.out.print(source.getName() \t);System.out.print(source.getType() \t);System.out.println(source.getUploadDate());}}
}(3)、测试对应操作是否成功 7、条件查询、模糊查询和增删改查操作重点复习
1、条件查询
(1)、SourceManageDAOByJDBC接口实现
/*** 课程 Source DAO层* author 为一道彩虹*/
public interface SourceManageDAOByJDBC
{/*** 查询所有Source数据* return 多条数据才用ListSource接收数据*/ListSource QueryAllSource();/*** Source条件查询* param name 名称* return Source数据有一条的时候*/Source conditionalQuery(String name);/*** Source条件查询* param name 名称* return ListSource数据有多条的时候*/ListSource conditionalQueryList(String name);
}(2)、SourceManageDAOByJDBCImpl类实现
/*** 描述Source DAO实现层** author 为一道彩虹*/
public class SourceManageDAOByJDBCImpl implements SourceManageDAOByJDBC
{/*** 查询所有Source数据* return 多条数据才用ListSource接收数据*/Overridepublic ListSource QueryAllSource(){// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;ListSource sourceList new ArrayList();try{// SQL 语句String SQL SELECT * FROM tb_source;// 执行 SQL 语句preparedStatement connection.prepareStatement(SQL);// executeQuery 执行查询操作 得到查询结果集合resultSetresultSet preparedStatement.executeQuery();while (resultSet.next()){// 创建 Source 实体接收对应数据Source source new Source();source.setId(resultSet.getInt(id));source.setName(resultSet.getString(name));source.setType(resultSet.getString(type));source.setUploadDate(resultSet.getString(uploadDate));// 添加到sourceList,用于返回数据sourceList.add(source);}}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection,preparedStatement,resultSet);}return sourceList;}/*** Source条件查询* param name 名称* return Source数据有一条的时候*/Overridepublic Source conditionalQuery(String name){// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;Source source null;try{// SQL 语句String SQL SELECT * FROM tb_source WHERE name ?;// 执行 SQL 语句preparedStatement connection.prepareStatement(SQL);// 装入参数preparedStatement.setString(1, name);// executeQuery 执行查询操作 得到查询结果集合resultSetresultSet preparedStatement.executeQuery();while (resultSet.next()){// 创建 Source 实体接收对应数据source new Source();source.setId(resultSet.getInt(id));source.setName(resultSet.getString(name));source.setType(resultSet.getString(type));source.setUploadDate(resultSet.getString(uploadDate));}}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection,preparedStatement,resultSet);}return source;}/*** Source条件查询* param name 名称* return ListSource数据有多条的时候*/Overridepublic ListSource conditionalQueryList(String name){// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;ListSource sourceList new ArrayList();try{String SQL SELECT * FROM tb_source WHERE name ?;preparedStatement connection.prepareStatement(SQL);preparedStatement.setString(1, name);// executeQuery 执行查询操作 得到查询结果集合resultSetresultSet preparedStatement.executeQuery();while (resultSet.next()){// 创建 Source 实体接收对应数据Source source new Source();source.setId(resultSet.getInt(id));source.setName(resultSet.getString(name));source.setType(resultSet.getString(type));source.setUploadDate(resultSet.getString(uploadDate));// 添加到sourceList,用于返回数据sourceList.add(source);}}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection,preparedStatement,resultSet);}return sourceList;}/** 测试对应操作是否成功 */public static void main(String[] args){// 创建SourceManageDAOByJDBCImpl对象SourceManageDAOByJDBCImpl daoImp new SourceManageDAOByJDBCImpl();System.out.println(--------------有一条数据时------------------);// 调用 conditionalQuery 方法Source条件查询Source source1 daoImp.conditionalQuery(搞笑趣事);System.out.print(source1.getId() \t);System.out.print(source1.getName() \t);System.out.print(source1.getType() \t);System.out.println(source1.getUploadDate());System.out.println(--------------有多条数据时------------------);// 调用 conditionalQuery 方法Source条件查询ListSource sourceList daoImp.conditionalQueryList(美女热舞);// 循环输出for (Source source : sourceList){System.out.print(source.getId() \t);System.out.print(source.getName() \t);System.out.print(source.getType() \t);System.out.println(source.getUploadDate());}}
}(3)、测试对应操作是否成功 2、模糊查询
(1)、SourceManageDAOByJDBC接口实现
/*** Source模糊查询* param name 名称* return ListSource模糊查询存在多条和单条数据情况使用List存储*/
ListSource sourceFuzzyQuery(String name);(2)、SourceManageDAOByJDBCImpl类实现
/*** Source模糊查询* param name 名称* return ListSource模糊查询存在多条和单条数据情况使用List存储*/
Override
public ListSource sourceFuzzyQuery(String name)
{// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;ResultSet resultSet null;ListSource sourceList new ArrayList();try{String SQL SELECT * FROM tb_source WHERE name LIKE ?;preparedStatement connection.prepareStatement(SQL);preparedStatement.setString(1, % name %);// executeQuery 执行查询操作 得到查询结果集合resultSetresultSet preparedStatement.executeQuery();while (resultSet.next()){// 创建 Source 实体接收对应数据Source source new Source();source.setId(resultSet.getInt(id));source.setName(resultSet.getString(name));source.setType(resultSet.getString(type));source.setUploadDate(resultSet.getString(uploadDate));// 添加到sourceList,用于返回数据sourceList.add(source);}}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection,preparedStatement,resultSet);}return sourceList;
}/** 测试对应操作是否成功 */
public static void main(String[] args)
{// 创建SourceManageDAOByJDBCImpl对象SourceManageDAOByJDBCImpl daoImp new SourceManageDAOByJDBCImpl();// 调用 sourceFuzzyQuery 方法Source模糊查询ListSource sourceList daoImp.sourceFuzzyQuery(美女);// 循环输出for (Source source : sourceList){System.out.print(source.getId() \t);System.out.print(source.getName() \t);System.out.print(source.getType() \t);System.out.println(source.getUploadDate());}
}(3)、测试对应操作是否成功 3、添加数据
(1)、SourceManageDAOByJDBC接口实现
/*** 添加Source数据* param source Source实体对象数据* return 影响行数因为添加数据是插入操作 数据库返回的是影响了几行int数据*/
int AddSourceData(Source source);(2)、SourceManageDAOByJDBCImpl类实现
/*** 添加Source数据* param source Source实体对象数据* return 影响行数因为添加数据是插入操作 数据库返回的是影响了几行int数据*/
Override
public int AddSourceData(Source source)
{// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;int result 0;try{// SQL 语句String sql INSERT INTO tb_source(name, type, uploadDate) VALUES (?, ?, ?);// 执行 SQL 语句preparedStatement connection.prepareStatement(sql);// 装入参数preparedStatement.setString(1, source.getName());preparedStatement.setString(2, source.getType());preparedStatement.setString(3, source.getUploadDate());result preparedStatement.executeUpdate();}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection, preparedStatement, null);}return result;
}/** 测试对应操作是否成功 */
public static void main(String[] args)
{// 创建SourceManageDAOByJDBCImpl对象SourceManageDAOByJDBCImpl daoImp new SourceManageDAOByJDBCImpl();// 创建Source对象并且初始化数据(id设置自增)Source source new Source();source.setName(贸易新闻);source.setType(视频);source.setUploadDate(2023-05-20);// 调用 AddSourceData 方法Source添加数据int result daoImp.AddSourceData(source);// 判断是否添加成功if (result ! 0){System.out.println(添加Source数据成功);}else{System.out.println(添加Source数据失败);}}(3)、测试对应操作是否成功 4、修改数据
(1)、SourceManageDAOByJDBC接口实现
/*** 编辑Source数据根据ID修改* param source Source实体对象数据* param id 编号* return 影响行数和添加数据同理*/
int EditSourceData(Source source, int id);(2)、SourceManageDAOByJDBCImpl类实现
/*** 编辑Source数据根据ID修改* param source Source实体对象数据* param id 编号* return 影响行数和添加数据同理*/
Override
public int EditSourceData(Source source, int id)
{// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;int result 0;try{// SQL 语句String sql UPDATE tb_source SET name ?, type ?, uploadDate ? WHERE id ?;// 执行 SQL 语句preparedStatement connection.prepareStatement(sql);// 装入参数preparedStatement.setString(1, source.getName());preparedStatement.setString(2, source.getType());preparedStatement.setString(3, source.getUploadDate());preparedStatement.setInt(4, id);result preparedStatement.executeUpdate();}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection, preparedStatement, null);}return result;
}/** 测试对应操作是否成功 */
public static void main(String[] args)
{// 创建SourceManageDAOByJDBCImpl对象SourceManageDAOByJDBCImpl daoImp new SourceManageDAOByJDBCImpl();// 创建Source对象并且初始化数据(id设置自增)Source source new Source();source.setName(美女礼仪);source.setType(视频);source.setUploadDate(2023-05-24);// 调用 EditSourceData 方法Source修改数据int result daoImp.EditSourceData(source, 9);// 判断是否添加成功if (result ! 0){System.out.println(修改Source数据成功);}else{System.out.println(修改Source数据失败);}
}(3)、测试对应操作是否成功 5、删除数据
(1)、SourceManageDAOByJDBC接口实现
/*** 删除Source数据根据ID删除* param id 编号* return 影响行数和添加数据同理*/
int DeleteSourceData(int id);(2)、SourceManageDAOByJDBCImpl类实现
/*** 删除Source数据根据ID删除* param id 编号* return 影响行数和添加数据同理*/
Override
public int DeleteSourceData(int id)
{// 获取数据库连接Connection connection FactoryDB.getConnection();PreparedStatement preparedStatement null;int result 0;try{// SQL 语句String sql DELETE FROM tb_source WHERE id ?;// 执行 SQL 语句preparedStatement connection.prepareStatement(sql);// 装入参数preparedStatement.setInt(1, id);result preparedStatement.executeUpdate();}catch (Exception e){e.printStackTrace();}finally{// 关闭连接数据库对象防止资源重复调用FactoryDB.Close(connection, preparedStatement, null);}return result;
}/** 测试对应操作是否成功 */
public static void main(String[] args)
{// 创建SourceManageDAOByJDBCImpl对象SourceManageDAOByJDBCImpl daoImp new SourceManageDAOByJDBCImpl();// 调用 DeleteSourceData 方法Source删除数据int result daoImp.DeleteSourceData( 9);// 判断是否添加成功if (result ! 0){System.out.println(删除Source数据成功);}else{System.out.println(删除Source数据失败);}
}(3)、测试对应操作是否成功 先赞后看养成习惯^ _ ^ ❤️ ❤️ ❤️ 码字不易大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦