Java高级特性 - JDBC(上)

MYSQL数据库头歌实验平台答案(中央财经大学)第7章 视图 阅读详情

第一关

编程要求

在右侧编辑器补充代码,完成下列相应任务:
加载数据库驱动;【平台数据库连接的用户(user)为root,密码(password)为123123】
创建数据库mysql_db;
创建表student。
student表结构为:
| 字段名 | 类型 | 备注 | 约束 |
| :————: | :————: | :————: |
| id | int | 学生id | 非空 |
| name | varchar(20) | 学生姓名 | 无 |
| sex | varchar(4) | 学生性别 | 无 |
| age | int | 学生年龄 | 无 |
测试说明

平台会对你编写的代码进行测试: 测试输入:无 预期输出: id INT(11) name VARCHAR(20) sex
VARCHAR(4) age INT(11)

实训代码


import java.sql.*;

public class jdbcConn {
    public static void getConn() {
        /**********    Begin   **********/
        try {
			//1.注册驱动
			Class.forName("com.mysql.jdbc.Driver");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        /**********    End   **********/
        /**********    Begin   **********/
        Connection conn = null;
        Statement statement = null;
        //2.建立连接并创建数据库和表
		String url = "jdbc:mysql://127.0.0.1:3306/";
		String user = "root";
		String password = "123123";
		try{
			conn = DriverManager.getConnection(url,user,password);
			statement = conn.createStatement();
  			String sql1="drop database if exists mysql_db";
            String sql2="create database mysql_db";
            statement.executeUpdate(sql1);//执行sql语句
            statement.executeUpdate(sql2);
			statement.executeUpdate("use mysql_db");
			String sql = "create table student("+
						 "id int not null,"+
						 "name varchar(20),"+
						 "sex varchar(4),"+
						 "age int)";
			statement.executeUpdate(sql);
		}catch (SQLException e){
			e.printStackTrace();
		}
        /**********    End   **********/
        finally {
            try {
                if(statement!=null)
                    statement.close();
                if(conn!=null)
                    conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}


第二关

编程要求

在右侧编辑器补充代码,向上一章节中已创建好的数据库mysql_db中的表student中插入数据,并将插入的数据进行输出:
| id | name | sex | age |
| :————: | :————: | :————: |
| 1 | 张三 | 男 | 19 |
| 2 | 李四 | 女 | 18 |
| 3 | 王五 | 男 | 20 |
提示:已为你封装好student类,可在右侧文件夹中查看,此类可直接使用。
测试说明

平台会对你编写的代码进行测试: 测试输入:无 预期输出: 1 张三 男 19 2 李四 女 18 3 王五 男 20

实训代码

package jdbc;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class jdbcInsert {
    public static void insert(){
		/**********   Begin  **********/
        try {
            //加载驱动
           Class.forName("com.mysql.jdbc.Driver" );
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
		/**********   End   **********/



		Connection conn = null;
		PreparedStatement statement = null;
		/**********   Begin  **********/
        //连接并插入数据
		try{
            conn = DriverManager.getConnection ("jdbc:mysql://127.0.0.1:3306/mysql_db","root","123123" );
            PreparedStatement s = conn.prepareStatement("insert into student values(?,?,?,?)");   
            s.setInt(1,1);s.setString(2,"张三");s.setString(3,"男");s.setInt(4,19);
		    s.executeUpdate();
            s.setInt(1,2);s.setString(2,"李四");s.setString(3,"女");s.setInt(4,18);
		    s.executeUpdate();
            s.setInt(1,3);s.setString(2,"王五");s.setString(3,"男");s.setInt(4,20);
		    s.executeUpdate();
            s=conn.prepareStatement("select * from student");
            ResultSet r = s.executeQuery();
            while (r.next()) {
                System.out.println(r.getString(1)+" "+r.getString(2)+" "+r.getString(3)+" "+r.getString(4));

            }
		} catch (SQLException e) {
            e.printStackTrace();
        }
		/**********   End   **********/
		finally {
            try {
                if (statement != null)
                    statement.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

第三关

编程要求

这里是引用根据提示,在右侧编辑器补充代码,编写一条新增SQL语句和任意一条错误的SQL语句,提交事务;要求第一条新增语句在数据库中被修改,其后错误SQL语句不执行。
新增插入语句具体要求如下:
在mysql_db数据库student表中新增一条id为4,name为赵六,sex为女,age为21的数据。
提示:每一条SQL语句之后都可提交事务。
测试说明

平台会对你编写的代码进行测试: 测试输入:无 预期输出: 1 张三 男 19 2 李四 女 18 3 王五 男 20 4 赵六 女 21

实训代码

package jdbc;

import java.sql.*;

public class jdbcTransaction {

    public static void transaction(){
        try {
            Class.forName("com.mysql.jdbc.Driver" );
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        Connection conn = null;
        PreparedStatement ps = null;
        /**********  Begin   **********/
        //连接数据库并开启事务
        try {
            conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/mysql_db","root","123123" );
            conn.setAutoCommit(false);
             ps = conn.prepareStatement("insert into student(id,name,sex,age) values(4,'赵六','女',21)");
           ps.executeUpdate();
           conn.commit();
           ps = conn.prepareStatement("insert in student(id,name,sex,age) values(5,'钱七','男',18)");
           ps.executeUpdate();
           conn.commit();
        } catch (SQLException e) {
            try {
                //事务回滚
                conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
        /**********  End   **********/
        finally {
            try {
                if(ps!=null)
                    ps.close();
                if (conn != null)
                    conn.close();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
        }
    }
}

spring项目中对jdbc.properties中的明文密码加密解密 背景 在使用spring开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如jdbc.properties,里面用明文的方式存储着数据库的敏感信息用户名username和密码password,容易产生安全问题,所以要对其进行加密。 思路 使用对称加密工具对密码加密解密 将解密后的数据存入到jdbc.properties配置文件中 自定义DBPropertyPlaceholderConfigurer,... 阅读详情

相关推荐

头歌--Java高级之面向对象(上)

头歌实践教学--Java高级之面向对象(上)

m0_56638814的博客 7271

Educoder–Java高级特性(第九章)- JDBC(上)【笔记+参考代码】

Educoder–Java高级特性(第九章)- JDBC(上)【笔记+参考代码】 第一关 编程要求 在右侧编辑器补充代码,完成下列相应任务: 加载数据库驱动;【平台数据库连接的用户(user)为root,密码(password)为123123】 创建数据库mysql_db; 创建表student。 student表结构为: | 字段名 | 类型 | 备注 | 约束 | | :————: | :————: | :————: | | id | int | 学生id | 非空 | | na

fuhanghang的博客 9395

Java高级特性 - JDBC(下)

Java高级特性 - JDBC(下)

m0_56638814的博客 1732

二十七、JDBC(上)(下)

第1关:JDBC连接数据库

CaesarQu的博客 1729

Educoder Java高级特性 - JDBC(下)

第1关:指定类型JDBC封装 (1)按照要求封装一个JDBC工具类 在右侧编辑器补充代码,完成数据库连接、删除、更新以及查找方法。其中删除方法是通过用户传入新闻id来进行删除。注意:连接数据库名为mysql_db,数据库用户为root,密码为123123。 package step1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.R

Junds0的博客 5141

Java JDBC高级特性:优化数据库编程

除了基本的连接和查询操作,JDBC还提供了一些高级特性,可以帮助我们优化数据库编程,提高应用程序的性能和可维护性。批处理操作是一种执行多个SQL语句的机制,通过一次性发送多个SQL语句给数据库,可以减少网络传输和数据库交互的开销,从而提高性能。批处理操作可以减少与数据库的交互次数,提高性能;我们可以使用该接口的方法来获取数据库中的表、列、索引等信息,从而可以在程序中动态地操作数据库结构。保存点是一种在事务中进行部分回滚的机制,它允许我们在事务执行过程中设置一个标记点,然后可以选择性地回滚到该标记点。

BrchCpp的博客 110

头歌java课程实验(Java高级特性 - JDBC(下))

因此,本章节我们采用反射对JDBC的增删改查进行泛型的封装。上一章节中我们对具体类(News)进行JDBC的封装,但是在一个项目中,数据库中的表远不止一个,难道我们需要对每一张表都进行封装吗?News [id=1, title=岳云鹏的18岁,贾玲的18岁,沈腾的18岁,网友:不是来搞笑的?News [id=1, title=岳云鹏的18岁,贾玲的18岁,沈腾的18岁,网友:不是来搞笑的?在增删改查的过程中,我们都离不开数据库的连接,因此我们可以将其操作封装成一个方法,方法无需参数,将连接对象作为返回值。

zzj的博客 1091

深入理解Java I/O API与JDBC的高级特性

本文基于提供的章节内容,深入探讨了Java I/O API和JDBC的高级特性。我们涵盖了序列化、文件处理、异常处理、数据库连接和本地化等关键概念。通过解答复习问题的形式,本文揭示了这些特性的实际应用和潜在的陷阱,提供了在开发过程中如何正确使用Java I/O和JDBC的宝贵见解。

weixin_36197669的博客 440

JAVA 高级特性 JDBC

需要的jdbc jar 包: mysql-connector-java-5.1.38-b...960.9 KB ojdbc6.jar2.0 MB sqljdbc4.jar455.4 KB 数据持久化分为很多状态 瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态。 持久化:将程序...

weixin_30326745的博客 1201

Java数据库连接技术:JDBC的高级特性

本文详细介绍了Java数据库连接(JDBC)的高级特性,包括批量更新、预编译语句(PreparedStatement)、可调用语句(CallableStatement)、命名参数、参数元数据以及JDBC数据类型。通过代码示例,解释了如何使用这些特性来提高数据库操作的效率和安全性,同时减少代码复杂性。

weixin_29717341的博客 364

阿里云大模型ACP认证模拟考试(三)

【摘要】:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 3581

头歌Educoder——Java高级特性 - JDBC(下)

文章目录第1关:指定类型JDBC封装任务描述相关知识连接数据库关闭数据库连接新增数据编程要求测试说明实现代码第2关:泛型JDBC封装任务描述相关知识反射的常用方法更新数据的泛型封装分析及实现编程要求测试说明实现代码 第1关:指定类型JDBC封装 任务描述 本关任务:按照要求封装一个JDBC工具类。 相关知识 为了完成本关任务,你需要掌握JDBC的基本使用,可参考上一个实训内容 Java高级特性 - JDBC(上)。 本章节将针对已知数据结构的某张表进行JDBC的封装。 连接数据库 在增删改查的过程中,我

赵士杰——成功并非一蹴而就,而是在持之以恒的努力中逐渐实现。 8854

车载与安防项目实战:如何用RK3588搭配NVP6158C实现4路AHD摄像头BT1120接入与同步预览

本文详细解析了基于RK3588处理器与NVP6158C解码芯片实现4路AHD摄像头BT1120接入与同步预览的技术方案。针对车载环视和安防监控场景,重点探讨了硬件架构设计、BT1120接口配置、多路同步机制及Android HAL适配等核心问题,提供了从底层驱动到上层应用的完整实现路径,为相关领域的工程实践提供可靠参考。

weixin_30571465的博客 486

第五天:java网络编程、JDBC与高级特性概览

通过完成第五天的目标,你将能够对Java中的网络编程、JDBC数据库访问有一个基本的了解,并对Java的一些高级特性如泛型、反射和注解有一个概览性的认识。这将为你后续深入学习Java的更多高级特性和应用打下坚实的基础。记得在学习过程中多做实践,通过编写代码来加深理解。

独立开发者 513

基因树构建全流程:从OrthoFinder到iTOL的保姆级教程(附兰科植物案例)

本文提供了一份从OrthoFinder到iTOL的基因树构建全流程保姆级教程。详细解析了利用OrthoFinder构建物种树、IQ-TREE构建无根基因树、Notung进行树调和生根,以及最终在iTOL中实现专业可视化的每一步操作与实战经验,并以兰科植物NB-ARC基因家族为例进行演示,帮助研究者系统掌握基因树分析方法。

tequila的博客 523

MCNP 减方差技巧(最全)

MCNP的减方差技巧,核心在于不显著增加计算时间的前提下,通过修改模拟过程来降低结果的统计误差。尤其适用于,这类问题中粒子很难到达探测器区域,直接模拟效率极低栅元重要性是常用的减方差技巧,该方法主要对计算模型的不同区域定义不同的重要性数值。当粒子从重要性低的区域废物重要性高的区域,产生更多粒子,增大统计量;当从重要性高的区域进入重要性低的区域,会进行,增快计算效率。n= 中子,N;光子,P;电子 Exi= 栅元i的重要性I=栅元总数项目IMP卡是必须的,除非使用了WWN卡如果粒子进入0。

chencheng1127的博客 926

Educoder–Java高级特性(第九章)- JDBC(下)【笔记+参考代码】

Educoder–Java高级特性(第九章)- JDBC(上)【笔记+参考代码】 第一关 编程要求 在右侧编辑器补充代码,完成数据库连接、删除、更新以及查找方法。其中删除方法是通过用户传入新闻id来进行删除。 注意:连接数据库名为mysql_db,数据库用户为root,密码为123123。 测试说明 平台会对你编写的代码进行测试: 测试输入:无 预期输出: News [id=1, title=岳云鹏的18岁,贾玲的18岁,沈腾的18岁,网友:不是来搞笑的?, anthor_name=光明网] 说明:

fuhanghang的博客 2698

MIKE21桥墩模拟实战:抠网格与构筑物法对比与选型指南

本文详细对比了MIKE21软件中抠网格法与构筑物法在桥墩模拟中的应用,包括操作步骤、适用场景及优缺点分析。通过实际案例数据展示两种方法的精度与效率差异,并提供选型决策树和常见问题解决方案,帮助工程师根据项目需求选择最优模拟方法。

weixin_42656416的博客 322

Java JDBC高级特性

 1、JDBC批处理 实际开发中需要向数据库发送多条SQL语句,这时,如果逐条执行SQL语句,效率会很低,因此可以使用JDBC提供的批处理机制。Statement和PreparedStatemen都实现了批处理。测试表结构如下: Statement批处理程序示例 1 package server; 2 3 import java.sql.Connection; 4 i...

weixin_33670713的博客 550

Kylin系统离线环境下的dpkg依赖包高效部署指南

本文详细介绍了在Kylin系统离线环境下高效部署dpkg依赖包的完整方案,包括预下载依赖包、构建本地APT仓库以及高级故障排查技巧。通过实战经验和优化建议,帮助用户解决依赖地狱问题,提升部署效率,特别适用于银河麒麟V10等内网环境。

weixin_29051245的博客 386

计算数列位置N的值

本文介绍了一个数列生成问题,要求根据输入的两个整数M和N生成特定规则的数列,并输出第N个位置上的数值。数列生成规则为:前M个元素为1到M;后续元素根据前M个元素是否重复来决定计算方式(求和或求差)。文章提供了C++、Java和Python三种语言的实现方案,均包含输入处理、数列初始化、循环计算和结果输出等步骤。各语言实现中均使用集合去重特性判断重复元素,并通过内置函数或自定义方法求取最大值和最小值。该问题主要考察基础编程能力,包括数组/列表操作、最值计算和重复元素判断等基本编程技巧。

面试高手的博客 655

头歌Educoder——Java高级特性 - JDBC(上)

文章目录第1关:JDBC连接数据库任务描述相关知识加载数据库驱动建立连接执行编写的`SQL`语句释放资源编程要求测试说明实现代码第2关:JDBC对表中数据的操作任务描述相关知识指定数据库连接向指定表中插入数据PreparedStatement查询表中数据编程要求测试说明实现代码第3关:JDBC事务任务描述相关知识事务事务的基本要素(`ACID`)开启事务提交和回滚编程要求测试说明实现代码 第1关:JDBC连接数据库 任务描述 本关任务:使用jdbc连接数据库并完成创建数据库和创建表的操作。 相关知识 JD

赵士杰——成功并非一蹴而就,而是在持之以恒的努力中逐渐实现。 1万+

搭建 Newman + Postman + Git + Jenkins 环境教程

一步步搭建 Newman、Postman、Git 和 Jenkins 的环境。这些工具常用来做 API 测试和 CI/CD 自动化,尤其是 Postman 和 Newman 搭配 Git 和 Jenkins,能实现 API 集合的版本管理和自动测试。

Criss@陈磊 435

java高级特性流迭代器_JAVA 高级特性 JDBC

packagecom.project.jdbc;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava...

weixin_35866960的博客 204

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: java作业Awt和Swing
下一篇: Java零基础教学
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘的比学的还快

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值