jdbc笔记(一) 使用Statement对单表的CRUD操作
jdbc连接mysql并执行简单的CRUD的步骤:
1.注册驱动(需要抛出/捕获异常)
Class.forName("com.mysql.jdbc.Driver");
2.建立连接需要抛出/捕获异常)
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "Danny2036");
3.创建statement
statement = connection.createStatement();
4.创建sql语句
String sql = "insert into user values(10, \"noname\", 31)";
5.执行sql语句,如果是查询需要用ResultSet接收结果集
int affectrows = statement.executeUpdate(sql);
System.out.println(affectrows);
6.关闭资源
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
————————————————————————分割线——————————————————————————————————
最后贴出全部代码(包括insert,selectOne和selectAll)
package com.colin.dao;
import java.sql.*;
public class JdbcTest {
/**
* 插入语句
* @param id 主键id int
* @param name 姓名 String
* @param age 年龄 int
*/
public static void update(int id, String name, int age) throws SQLException {
long starttime = System.currentTimeMillis();
Connection connection = null;
Statement statement = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb",
"root", "Danny2036");
statement = connection.createStatement();
String sql = "update user set name = \'" + name + "\', age = "+ age +" where id = " + id;
System.out.println(sql);
int affectrows = statement.executeUpdate(sql);
System.out.println(affectrows);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.close();
}
if (statement != null) {
statement.close();
}
}
System.out.println(System.currentTimeMillis() - starttime);
}
public static void selectOne(int id) throws ClassNotFoundException, SQLException {
Statement statement = null;
Connection connection = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb",
"root", "Danny2036"
);
// 创建statement
statement = connection.createStatement();
// 定义sql语句
String sql = "SELECT id, name, age FROM user where id = " + id;
// 执行sql语句并获得结果
ResultSet resultSet = statement.executeQuery(sql);
// 遍历结果集
while (resultSet.next()) {
int idResult = (int) resultSet.getInt("id");
String nameResult = (String) resultSet.getString("name");
int ageResult = (int) resultSet.getInt("age");
System.out.println(idResult + "\t" + nameResult + "\t" + ageResult);
}
} finally {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
}
public static void selectAll() throws ClassNotFoundException, SQLException {
Statement statement = null;
Connection connection = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb",
"root", "Danny2036"
);
// 创建statement
statement = connection.createStatement();
// 定义sql语句
String sql = "SELECT id, name, age FROM user";
// 执行sql语句并获得结果
ResultSet resultSet = statement.executeQuery(sql);
// 遍历结果集
while (resultSet.next()) {
int idResult = (int) resultSet.getInt("id");
String nameResult = (String) resultSet.getString("name");
int ageResult = (int) resultSet.getInt("age");
System.out.println(idResult + "\t" + nameResult + "\t" + ageResult);
}
} finally {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
}
public static void main(String[] args) throws SQLException, ClassNotFoundException {
selectAll();
}
/*
// 向上抛异常的方式
public static void main(String[] args)
throws ClassNotFoundException, SQLException {
long starttime = System.currentTimeMillis();
Connection connection = null;
Statement statement = null;
try {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//建立连接
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb",
"root", "Danny2036");
//创建statement
statement = connection.createStatement();
//定义sql
String sql = "insert into user values(10, \"noname\", 31)";
//执行sql,如果是查询需返回结果集
int affectrows = statement.executeUpdate(sql);
System.out.println(affectrows);
} finally {
//关闭资源
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
System.out.println("总执行时间: " + (System.currentTimeMillis() - starttime));
}
*/
/*
// 捕获异常的方式
public static void main(String[] args) throws SQLException {
long starttime = System.currentTimeMillis();
Statement statement = null;
Connection connection = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb?useSSL=true",
"root", "Danny2036");
// 创建statement
statement = connection.createStatement();
// 定义sql
String sql = "insert into user values(9, \"ahaha\", 22)";
// 执行sql,如果是查询,遍历结果集
int affectrows = statement.executeUpdate(sql);
System.out.println(affectrows);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
}
System.out.println("总用时 : " + (System.currentTimeMillis() - starttime));
}
*/
}
——————————————————**********最后附上bean代码***********————————————————————
package com.colin.bean;
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
jdbc笔记(一) 使用Statement对单表的CRUD操作的更多相关文章
- jdbc笔记(二) 使用PreparedStatement对单表的CRUD操作
首先声明,本文只给出代码,并不是做教程用,如有不便之处,还请各位见谅. PreparedStatement相较于Statement,概括来说,共有三个优势: 1. 代码的可读性和易维护性:Prepar ...
- 【Java EE 学习 44】【Hibernate学习第一天】【Hibernate对单表的CRUD操作】
一.Hibernate简介 1.hibernate是对jdbc的二次开发 2.jdbc没有缓存机制,但是hibernate有. 3.hibernate的有点和缺点 (1)优点:有缓存,而且是二级缓存: ...
- 6.单表的CRUD操作
1.插入后用新id初始化被插入对象 <insert id="insertStudentCatchId"> insert into student (age,name,s ...
- SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数
Sqlserver基础知识 (1)创建数据库 创建数据库有两种方式,手动创建和编写sql脚本创建,在这里我采用脚本的方式创建一个名称为TSQLFundamentals2008的数据库.脚本如下: ...
- Django学习笔记(10)——Book单表的增删改查页面
一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...
- MyBatis-Plus学习笔记(1):环境搭建以及基本的CRUD操作
MyBatis-Plus是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,使用MyBatis-Plus时,不会影响原来Mybatis方式的使用. SpringBoot+M ...
- Oracle触发器实现监控某表的CRUD操作
前提:请用sys用户dba权限登录 1.创建一个表来存储操作日志 create table trig_sql( LT DATE not null primary key, SID NUMBER, SE ...
- 通过jdbc完成单表的curd操作以及对JDBCUtils的封装
概述:jdbc是oracle公司制定的一套规范(一套接口),驱动是jdbc的实现类,由数据库厂商提供.所以我们可以通过一套规范实现对不同的数据库操作(多态) jdbc的作用:连接数据库,发送sql语句 ...
- JDBC简单增删改查实现(单表)
0.准备工作 开发工具: MySQL数据库, intelliJ IDEA2017. 准备jar包: mysql-connector-java-5.1.28-bin.jar(其他均可) 1. 数据库数据 ...
随机推荐
- react路由
针对多个列表导航公用一个组建,然后 有两种路由方式 1.import {HashRouter as Router,Route,Link} from 'react-router-dom' 不过这个路由中 ...
- Jquery常用的方法总结
1.关于页面元素的引用通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom ...
- 2019年年初iOS招人心得笔记(附面试题)
第一部分是我当时准备的面试题 第二部分是我的心得 我重点在本文的第二部分说一下这次面试别人的心得体会.而关于第一部分的面试题,文中不提供答案(因为不是本文的重点) 第一部分:面试题 注意,下面这些题只 ...
- 小甲鱼零基础python课后题 P22 021函数:递归是神马
0.递归在编程上的形式是如何表现的呢? 答:在编程上,递归表现为函数调用本身这么一个行为. 1.递归必须满足哪两个基本条件? 答:1函数调用自己. 2有正确的返回条件 2.思考一下,按照递归的特性,在 ...
- 数位DP HDU - 2089 不要62
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 学习ActiveMQ(六):JMS消息的确认与重发机制
当我们发送消息的时候,会出现发送失败的情况,此时我们需要用到activemq为我们提供了消息重发机制,进行消息的重新发送.那么我们怎么知道消息有没有发送失败呢?activemq还有消息确认机制,消费者 ...
- VUE-005-axios常用请求参数设置方法
在前后端分离的开发过程中,经常使用 axios 进行后端接口的访问. 个人习惯常用的请求参数设置方法如下所示: // POST方法:data在请求体中 addRow(data) { return th ...
- css 修改svg图标的颜色(不修改fill)
给icon加样式 (利用原图标的阴影区域,同时将原图标移动超过之前父元素范围)filter: drop-shadow(red 80px 0);transform: translateX(-80px); ...
- 国际快递查询接口JAVA示例-trackingmore
国际快递查询接口 国际快递查询接口的需求量很大,例如一些跨境电商B2C网站.快递查询APP.快递柜.跨境物流公司等都会需要用到国际快递接口. 目前市面上的快递接口,以国内快递居多,有些虽然号称支持多家 ...
- VM中centos设置子网内虚拟机ip
,首先应该设置vm的网络,打开编辑->虚拟网络编辑器,弹出框及具体设置如下图 2,选中相应的虚拟机,右键设置,并设置相应的选项,具体设置如下图 3.设置完成后,打开虚拟机,等待虚拟机启动后,输入 ...