热门标签 | 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 ;





推荐阅读
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
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社区 版权所有