Java高级特性 - JDBC(上)

第一关

编程要求

在右侧编辑器补充代码,完成下列相应任务:
加载数据库驱动;【平台数据库连接的用户(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();
            }
        }
    }
}

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Java面试资源概览 一、内容概览 本次分享的资源涵盖了Java面试的各个方面,从基础知识到高级技术,从数据库到框架应用,都做了深入的探讨和总结。具体内容包括: Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析了项目的架构设计和核心技术点。 面试经验和技巧:整理了常见的Java面试问题,并给出了答题建议和技巧。 代码和项目实例:提供了多个Java项目的源代码,方便学习者参考和实践。 学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定基础的开发者,都能从中获得启发和帮助。 三、使用建议 系统学习:建议学习者按照资源提供的顺序和内容,系统地学习和掌握Java的知识点。 实践为王:理论知识和实战经验相结合,通过实践来加深理解和记忆。 持续更新:由于Java技术和面试要求都在不断更新,建议学习者保持关注,随时更新自己的知识和技能。 交流与讨论:与同学或同行进行交流和讨论,分享学习心得和经验,共同进步。Java面试资源概览 一、内容概览 本次分享的资源涵盖了Java面试的各个方面,从基础知识到高级技术,从数据库到框架应用,都做了深入的探讨和总结。具体内容包括: Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析了项目的架构设计和核心技术点。 面试经验和技巧:整理了常见的Java面试问题,并给出了答题建议和技巧。 代码和项目实例:提供了多个Java项目的源代码,方便学习者参考和实践。 学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定基础的开发者,都能从中获得启发和帮助。 三、使用建议 系统学习:建议学习者按照资源提供的顺序和内容,系统地学习和掌握Java的知识点。 实践为王:理论知识和实战经验相结合,通过实践来加深理解和记忆。 持续更新:由于Java技术和面试要求都在不断更新,建议学习者保持关注,随时更新自己的知识和技能。 交流与讨论:与同学或同行进行交流和讨论,分享学习心得和经验,共同进步。Java面试资源概览 一、内容概览 本次分享的资源涵盖了Java面试的各个方面,从基础知识到高级技术,从数据库到框架应用,都做了深入的探讨和总结。具体内容包括: Java基础知识点:包括数据类型、面向对象特性、异常处理、集合框架等。 Java核心技术:如多线程、网络编程、序列化等都有详细的解释和示例。 常用框架:如Spring、MyBatis等框架的使用方法和内部原理都有涉及。 数据库相关:包括关系型数据库和非关系型数据库的使用,以及JDBC、MyBatis等与数据库交互的技术。 实战项目经验:分享了几个经典的Java项目,解析了项目的架构设计和核心技术点。 面试经验和技巧:整理了常见的Java面试问题,并给出了答题建议和技巧。 代码和项目实例:提供了多个Java项目的源代码,方便学习者参考和实践。 学习笔记和心得:记录了学习过程中的重点难点和心得体会,有助于学习者更好地理解和掌握知识。 二、适用人群 本资源适用于即将毕业或已经毕业,希望通过学习Java找到一份理想工作的同学。无论你是初学者还是有一定基础的开发者,都能从中获得启发和帮助。 三、使用建议 系统学习:建议学习者按照资源提供的顺序和内容,系统地学习和掌握Java的知识点。 实践为王:理论知识和实战经验相结合,通过实践来加深理解和记忆。 持续更新:由于Java技术和面试要求都在不断更新,建议学习者保持关注,随时更新自己的知识和技能。 交流与讨论:与同学或同行进行交流和讨论,分享学习心得和经验,共同进步。
视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 1、课程简介 Spring框架是一系列应用框架的核心,也可以说是整合其他应用框架的基座。同时还是SpringBoot的基础。在当下的市场开发环境中,Spring占据的地位是非常高的,基本已经成为了开发者绕不过去的框架了。它里面包含了Spring,SpringMVC,SpringData(事务),SrpingTest等等。 其中: Spring本身里面包含了两大核心IOC和AOP。IOC负责降低我们代码间的依赖关系,使我们的项目灵活度更高,可复用性更强。AOP是让方法间的各个部分更加独立,达到统一调用执行,使后期维护更加的方便。 SpringMVC本身是对Servlet和JSP的API进行了封装,同时在此基础上进一步加强。它推出的一套注解,可以降低开发人员的学习成本,从而更轻松的做表现层开发。同时,在3.x版本之后,它开始之初Rest风格的请求URL,为开发者提供了开发基于Restful访问规则的项目提供了帮助。 SpringData是一组技术合集。里面包含了JDBC,Data JPA,Data Redis,Data Mongodb,Data Rabbit,Data ElasticSearch等等。合集中的每一项都是针对不同数据存储做的简化封装,使我们在操作不同数据库时,以最简洁的代码完成需求功能。 SpringTest它是针对Junit单元测试的整合。让我们在开发中以及开发后期进行测试时,直接使用Junit结合spring一起测试。 本套课程中,我们将全面剖析Spring和SpringMVC两个部分。从应用场景分析,到基本用法的入门案例,再到高级特性的分析及使用,最后是执行原理的源码分析。让学生通过学习本套课程不仅可以知其然,还可以知其所以然。最终通过一个综合案例,实现灵活运用Spring框架中的各个部分。 2、适应人群 学习spring,要有一定的Java基础,同时应用过spring基于xml的配置。(或者学习过官网的Spring课程) 学习springmvc,要有一定java web开发基础。同时对spring框架要有一定了解。 3、课程亮点 系统的学习Spring框架中各个部分,掌握Spring中一些高级特性的使用。 l Spring IoC n 设计模式-工厂模式 n 基础应用-入门案例 n 基础应用-常用注解使用场景介绍及入门 n 高级特性-自定义BeanNameGenerator n 高级特性-自定义TypeFilter n 高级特性-ImportSelector和ImportBeanDefinitionRegistrar的分析 n 高级特性-自定义ImportSelector n 高级特性-FilterType中的AspectJTypeFilter的使用 n 高级特性-自定义ImportBeanDefinitionRegistrar n 高级特性-自定义PropertySourceFactory实现解析yaml配置文件 n 源码分析-BeanFactory类视图和常用工厂说明 n 源码分析-AnnotationConfigApplicationContext的register方法 n 源码分析-AnnotationConfigApplicationContext的scan方法 n 源码分析-AbstractApplicationContext的refresh方法 n 源码分析-AbstractBeanFactory的doGetBean方法 l Spring Aop n 设计模式-代理模式 n 编程思想-AOP思想 n 基础应用-入门案例 n 基础应用-常用注解 n 高级应用-DeclareParents注解 n 高级应用-EnableLoadTimeWeaving n 源码分析-@EnableAspectJAutoproxy注解加载过程分析 n 源码分析-AnnotationAwareAspectJAutoProxyCreator n 技术详解-切入点表达式详解 l Spring JDBC n 基础应用-JdbcTemplate的使用 n 源码分析-自定义JdbcTemplate n 设计模式-RowMapper的策略模式 n 高级应用-NamedParameterJdbcTemplate的使用 n 源码分析-TransactionTemplate n 源码分析-DataSourceUtils n 源码分析-TransactionSynchronizationManager
### 回答1: JDBCJava Database Connectivity的缩写,是Java语言中用于连接和操作数据库的接口。它提供了一组标准的API,可以用来访问各种不同类型的关系型数据库,如Oracle、MySQL、SQL Server等。JDBC驱动程序是一个Java类库,可以将JDBC API映射到特定数据库的接口上。通过使用JDBC,可以在Java程序中执行SQL语句,并对数据库进行增删改查等操作。 ### 回答2: JDBCJava Database Connectivity(Java数据库连接)的缩写,是Java语言中用于与数据库进行连接和操作的API(应用程序接口)。它可以让开发者使用Java语言轻松地访问各种不同类型的数据库。 JDBC高级特性包括以下几个方面: 1. 连接池:JDBC连接池是一种管理数据库连接的机制。它可以在应用程序启动时创建一定数量的数据库连接,并在需要时将这些连接分配给应用程序使用。通过使用连接池,可以减少每次请求时创建和关闭数据库连接的开销,提高应用程序的性能。 2. 事务管理:JDBC提供了事务管理的功能,可以对多个数据库操作进行批量提交或回滚。通过使用事务,可以确保多个操作的一致性和完整性,同时避免因意外错误导致数据丢失或不一致的问题。 3. 批量更新:JDBC提供了批量更新的功能,可以将多个数据操作一次性提交到数据库,从而减少与数据库的交互次数,提高性能。批量更新适用于需要同时操作多个数据记录的场景,比如大量数据的插入、更新或删除。 4. 元数据查询:JDBC可以通过元数据查询数据库的结构和属性信息,包括表、列、索引等的定义和属性。开发者可以使用元数据查询来动态获取数据库的结构,从而实现一些灵活的操作和功能,例如自动生成代码或报表等。 5. 执行计划:执行计划是指数据库在执行SQL语句时所采取的具体执行策略。JDBC可以获取和分析执行计划信息,帮助开发者优化SQL语句的性能。通过查看执行计划,开发者可以了解数据库在执行SQL语句时所使用的索引、排序、连接等操作,从而针对性地进行性能优化。 总结来说,JDBC高级特性包括连接池、事务管理、批量更新、元数据查询和执行计划等。通过使用这些特性,开发者可以更加灵活和高效地与数据库进行交互,实现更复杂的数据操作和业务需求。 ### 回答3: Java高级特性中的一个重要组成部分是JDBCJava Database Connectivity),它为Java应用程序提供了与数据库之间连接的能力。 JDBC允许开发人员使用标准的SQL语句来查询和操作各种类型的数据库,无论是关系型数据库如MySQL、Oracle还是非关系型数据库如MongoDB。JDBC通过数据库驱动程序(Driver)来实现与数据库的通信,每种数据库都需要特定的驱动程序。 使用JDBC的第一步是加载数据库驱动程序。开发人员需要使用"Class.forName()"方法来加载驱动程序的类。一旦驱动程序加载成功,开发人员可以使用"DriverManager.getConnection()"方法来创建与数据库的连接。 在成功连接数据库之后,开发人员可以使用Java的数据库API(Application Programming Interface)来执行SQL语句、事务管理和获取查询结果等。JDBC提供了一组接口和类来实现这些功能,例如"Statement"、"PreparedStatement"和"ResultSet"等。 JDBC还支持元数据(MetaData),可以通过元数据获取关于数据库的信息,如表结构、列名和数据类型等。元数据使得开发人员可以动态地获取和处理数据库的信息,从而实现更高级的功能。 除了基本的SQL操作,JDBC还支持批量处理、存储过程和批量更新等高级特性。批量处理可以提高性能,减少与数据库的通信次数;存储过程可以在数据库端执行一系列操作,减少与客户端的通信;批量更新可以一次性更新多个记录,提高效率。 总之,JDBCJava高级特性中与数据库交互的重要组成部分,通过它可以实现Java应用程序与各种类型的数据库的连接和操作。JDBC提供了丰富的API和功能,方便开发人员进行数据库操作,并支持高级特性如元数据、批量处理和存储过程等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

忘的比学的还快

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

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

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

打赏作者

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

抵扣说明:

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

余额充值