原生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 ...
随机推荐
- thinkphp 面向切面编程-行为拓展
thinkphp的CBD模式 核心保留了最关键的部分,并在重要位置设置了标签用以标记,其他功能都采用行为扩展和驱动的方式组合,开发人员可以根据自己的需要,对某个标签位置进行行为扩展或者替换,就可以方便 ...
- 花了一年时间开发出来的EZNest 自动套料软件
随着国内钢结构制造业的迅猛发展,市场竞争也愈演愈烈.近来钢材价格的大幅攀升,节约用材已成为企制胜的戈键,提高钢材的利用车自然就成了目前许多企业十分关心的一件事.对十大型钢结构生产制造商来说,如留在传统 ...
- Jenkins发布MVC应用程序
一个大的项目一般都会进行模块化.层次化分隔,每个模块.每个层次都可能是一个或多个工程文件组成,而且各个模块都有依赖关系,有先后顺序,先build哪个然后再build哪个都是有顺序的,如果想build一 ...
- c++文件编译的一些说明
1,头文件只在于预处理阶段用于完全包含该头文件的内容,每个c文件是一个编译单元,类定义和类声明,变量和函数声明,类内联实现是内部链接,全局变量和函数的定义以及类外部实现是具有全局链接性,假设将所有c单 ...
- centos下编译安装Openssl
yum install -y zlib*mkdir /datacd /data下载好tar包tar zxf openssl-1.0.2g.tar.gzcd openssl-1.0.2g./config ...
- 聪明的质监员[NOIP2011]
时间限制:1 s 内存限制:128 MB [问题描述] 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从 1 到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检 ...
- 腾讯发布 Omix 1.0 - 用 JSX 或 hyperscript 创建用户界面
腾讯发布 Omix 1.0 - 用 JSX 或 hyperscript 创建用户界面 今天,腾讯正式开源发布 Omix 1.0, 让开发者使用 JSX 或 hyperscript 创建用户界面. Gi ...
- 【head first python】1.初识python 人人都爱列表
#coding:utf-8 #创建简单的python列表 movies = ["The Holy Grail", "The Life of Brain", &q ...
- Modelsimse10.1如何编译altera库文件以支持IP仿真
前言 se版本默认没有ip之类的库支持,如果你用到了pll之类的ip,仿真前就得把库编译好. 流程 本例用的是altera的verilog库. 1.首先在modelsim安装目录下新建altera文件 ...
- Linux - 简明Shell编程12 - 定制输出(ColorOutput)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo -e "\ ...