原生Jdbc操作Mysql数据库开发步骤
原生Jdbc操作Mysql数据库开发步骤
原生的Jdbc就是指,不使用任何框架,仅用java.sql包下的方法实现数据库查询等的操作。
下面是开发步骤:
1、导入数据库驱动包
-mysql-connector-java-5.1.7-bin.jar
2、准备参数
-url () 链接url格式:(jdbc:mysql://主机名:端口号/数据库名字)
通常我们会在链接后添加编码方式: useUnicode=true&characterEncoding=UTF-8
-username 数据库访问的用户名
-password 数据库访问密码
-driver com.mysql.jdbc.Driver 内容是数据库驱动包中Driver类的全类名
3、加载数据库驱动 (使用反射的方式)
Class.forName(driver)
4、通过数据库驱动获取数据库链接
Connection conn = DriverManager.getConnection(url,username,passworrd);
5、编写sql语句
增加 - INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
删除 - DELETE FROM 表名称 WHERE 列名称 = 值
更新 - UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
查询 - SELECT 列名称 FROM 表名
6、通过链接获取执行对象
包含Statement 和 PrepareStatement ,由于PrepareStatement是预编译执行,且效率高、还能防止sql注入,因此在这只使用PrepareStatement讲解。
prepareStatement = conn.prepareStatement(sql);
若sql语句中有占位符“?”,则需要进行传入参数
prepareStatement.setObject(i,object); //其中i从1开始
7、执行sql语句
若为增删改操作,使用executeUpdate()方法,返回值为受影响行数,为int类型。
int result = pStatement.executeUpdate();
若为查询操作,使用executeQuery()方法,返回值将是一个结果集,因此需要遍历出结果集。
ResultSet resultSet = pStatement.executeQuery();
遍历resultSet
while(resultSet.next()){
Object object = resultSet.getObject(“表单列或者列号”);
}
8、关闭资源和连接
倒序关闭,先关闭resultSet,再关闭prepareStatement,再关闭conn.
以下是原生操作的代码,以查询为例:
private static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
private static final String USERNAME = "root";
private static final String UPASSWORD = "123456";
private static final String UDRIVER = "com.mysql.jdbc.Driver"; public static void main(String[] args){
Connection conn = null;
PreparedStatement pStatement = null;
ResultSet resultSet = null;
/*
* 编写sql语句
* 假设test表中只有int类型的id varcher类型的uname两列
* ? 为通配符,留作参数传入
*/
String sql ="SELECT id,uname FROM test WHERE id > ?";
try {
//加载驱动
Class.forName(UDRIVER);
//获取链接
conn = DriverManager.getConnection(URL, USERNAME, UPASSWORD);
//获取链接执行对象
pStatement = conn.prepareStatement(sql);
/*
* 将参数传入
* 此处根据参数类型的不同选用不同的方法传入
* ###其中第一个参数parameterIndex是从1开始计数##
*/
pStatement.setInt(1, 3);
//执行Sql语句
resultSet = pStatement.executeQuery();
//遍历结果集
while(resultSet.next()){
Integer id = resultSet.getInt("id");
String uname = resultSet.getString("uname");
System.out.println("用户ID为 : "+id+",用户名为: "+uname);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
//逆序关闭资源
try {
if(resultSet!=null){
resultSet.close();
}
if(pStatement!=null){
pStatement.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
原生Jdbc操作Mysql数据库开发步骤的更多相关文章
- 原生jdbc操作mysql数据库详解
首先给大家说一下使用JDBC链接数据库的步骤 1.加载链接数据库驱动 2.建立数据库链接 3.创建数据库操作对象 4.编写sql语句,执行sql语句 5.获取结果集 6.释放资源 我这边采用的是mav ...
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据
package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...
- 使用JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组 ...
- Golang原生sql操作Mysql数据库增删改查
Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用. 首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动 ...
- Python操作MySQL数据库(步骤教程)
我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...
- Java第三十五天,用JDBC操作MySQL数据库(一),基础入门
一.JDBC的概念 Java DataBase Connectivity 从字面意思我们也不难理解,就是用Java语言连接数据库的意思 JDBC定义了Java语言操作所有关系型数据库的规则(接口).即 ...
- JavaWeb用Jdbc操作MySql数据库(一)
一.添加开发包.在JavaWeb中用jdbc操作数据库,使用方法与java一样,但是在处理开发包的问题上有点差别.JavaWeb不能将mysql-connector-java-5.1.7-bin.ja ...
随机推荐
- Docker 中的一些概念
笔者使用 Mac 系统玩的,所以会更多阐述 Mac 上使用的一些东西. 在安装之前有些 Docker 相关的概念需要了解一下,以便我们更好了解 Docker. 简单来说,安装 Docker 之后,会在 ...
- Ubuntu中使用iptables
(一) 设置开机启动iptables # sysv-rc-conf --level 2345 iptables on (二) iptables的基本命令 1. 列出当前iptables的策略和规则 # ...
- 一份关于webpack2和模块打包的新手指南
webpack已成为现代Web开发中最重要的工具之一.它是一个用于JavaScript的模块打包工具,但是它也可以转换所有的前端资源,例如HTML和CSS,甚至是图片.它可以让你更好地控制应用程序所产 ...
- oracle数据库中的四种循环
[sql] DECLARE x number; BEGIN x:=9; <<repeat_loop>> --循环点 x:=x-1; DBMS_OUTPUT.PU ...
- Lettuce_webdriver 自动化测试
这篇文章主要讲解以下几点: 1. Lettuce_webdriver环境搭建 2. lettuce_webdriver自动化实例讲解 一. lettuce_webdriver环境搭建 搭建lettuc ...
- hdu--1258--Sum It Up(Map水过)
Sum It Up Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- 案例:Oracle报错ASM磁盘组不存在或没有mount
案例:Oracle报错ASM磁盘组不存在或没有mount 环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4 我做Standby RAC实验时,在恢复控制文件时,报错无 ...
- Appium入门示例(Java)
一.使用Eclipse直接创建案例工程 1.打开Eclipse,[File]-->[New]-->[Project] 2.选择[Java Project]-->[Next] 3.输入 ...
- Linux - 简明Shell编程07 - 数组(Array)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash test0=() # 定义数组 ...
- table之thead兼容
今天遇到一个小bug,是关于table中thead,tbody,tfoot的兼容问题: 在开发的时候为了方便写样式,我就把表格的标题部分关于th的内容放在了thead中,当然了,我也没有写tbody和 ...