热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IT十八掌作业_java基础第21天_mysql

感谢大家对IT十八掌大数据的支持,今天的作业如下:1.实践PreparedStament的CRUD操作。2.对比Statement和PreparedStatement的大批量操作耗时?(1

感谢大家对IT十八掌大数据的支持,今天的作业如下:


1.实践PreparedStament的CRUD操作。

2.对比Statement和PreparedStatement的大批量操作耗时?(100000记录)


3.事务特点?


4.mysql client如何控制事务?








--------------------------------------------------------------------------------------------------------

1.实践PreparedStament的CRUD操作。

答:

package com.it18zhang.jdbc;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.Statement;


import org.junit.Test;


/**

 * 使用PreparedStatement

 */

public class TestJDBC3 {

@Test

public void insert(){


try {

//1.注册驱动

String driver = "com.mysql.jdbc.Driver" ;

Class.forName(driver);

//2.建立连接

String url = "jdbc:mysql://localhost:3306/mybase" ;

String username = "root" ;

String password = "root" ;

Connection cOnn= DriverManager.getConnection(url, username, password);

//3.创建语句对象

String sql = "insert into stus(id,name,age) values(?,?,?)" ;

PreparedStatement ppst = conn.prepareStatement(sql);

ppst.setInt(1, 100);

ppst.setString(2, "tomas");

ppst.setInt(3, 23);

ppst.execute();

ppst.close();

conn.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

/**

* update , id = 1, age = 10

*/

@Test

public void update() {

try {

//1.注册驱动

String driver = "com.mysql.jdbc.Driver" ;

Class.forName(driver);

//2.建立连接

String url = "jdbc:mysql://localhost:3306/mybase" ;

String username = "root" ;

String password = "root" ;

Connection cOnn= DriverManager.getConnection(url, username, password);

//3.创建语句对象

Statement st = conn.createStatement();

String sql= "update stus set age = ? where id = ?" ;

PreparedStatement ppst = conn.prepareStatement(sql);

ppst.setInt(1, 10);

ppst.setInt(2, 1);

boolean b = ppst.execute();

System.out.println("" + b);

st.close();

conn.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

/**

* delete , id = 1

*/

@Test

public void delete() {

try {

//1.注册驱动

String driver = "com.mysql.jdbc.Driver" ;

Class.forName(driver);

//2.建立连接

String url = "jdbc:mysql://localhost:3306/mybase" ;

String username = "root" ;

String password = "root" ;

Connection cOnn= DriverManager.getConnection(url, username, password);

//3.创建语句对象

String sql = "delete from stus where id = ?" ;

PreparedStatement ppst = conn.prepareStatement(sql);

ppst.setInt(1, 1);

boolean b = ppst.execute();

System.out.println("" + b);

conn.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

@Test

public void select() {

try {

//1.注册驱动

String driver = "com.mysql.jdbc.Driver" ;

Class.forName(driver);

//2.建立连接

String url = "jdbc:mysql://localhost:3306/mybase" ;

String username = "root" ;

String password = "root" ;

Connection cOnn= DriverManager.getConnection(url, username, password);

conn.setAutoCommit(false);

//3.创建语句对象

//select id, name  ,age form ...

String sql = "select * from stus where id > ?" ;

PreparedStatement ppst = conn.prepareStatement(sql);

ppst.setInt(1, 1);

boolean b = ppst.execute();

//判断是否是查询

if(b){

//获取查询结果集

ResultSet rs = ppst.getResultSet();

//移动游标

while(rs.next()){

//int id = rs.getInt("id");

Integer id = (Integer) rs.getObject("id");

String name = rs.getString("name");

Integer age = (Integer) rs.getObject("age");

System.out.println("id=" + id + ",name=" + name + ",age=" + age);

}

//结果集元数据

ResultSetMetaData meta = rs.getMetaData();

for(int i = 0 ; i

System.out.print(meta.getColumnLabel(i + 1) + "  ");

}

}

//

//5.释放资源

ppst.close();

conn.close();

}

catch (Exception e) {

e.printStackTrace();

}

}

}





2.对比Statement和PreparedStatement的大批量操作耗时?(100000记录)

答:

插入大批量数据测试


3.事务特点?

答:

ACID

原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。 

一致性(consistency):在事务处理执行前后,数据库是一致的(两个账户要么都变,或者都不变)。 

隔离性(isolcation):一个事务处理对另一个事务处理没有影响。 

持续性(durability):事务处理的效果能够被永久保存下来 。


4.mysql client如何控制事务?

答:

mysql client下的事务操作

------------------------

1.关闭自动提交

set autocommmit = 0 ; //1 = true

2.开启事务

start transaction ;

3.提交事务

commit ;

4.回滚

rollback ;





推荐阅读
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 本文详细介绍了 org.apache.commons.io.IOCase 类中的 checkCompareTo() 方法,通过多个代码示例展示其在不同场景下的使用方法。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 深入解析Java多线程与并发库的应用:空中网实习生面试题详解
    本文详细探讨了Java多线程与并发库的高级应用,结合空中网在挑选实习生时的面试题目,深入分析了相关技术要点和实现细节。文章通过具体的代码示例展示了如何使用Semaphore和SynchronousQueue来管理线程同步和任务调度。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 使用lambda表达式排序Collections.sort(temp,(Stringa,Stringb)-{returnb.compareTo(a);});Collections ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
author-avatar
mini泥猴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有