原生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 ...
随机推荐
- 将Asp.Net Core和corefx移植到.Net 4.0
引言 因为工作内容的原因需要兼容 XP,而 XP 最多支持到.Net Framework 4.0.因此无法享受到 .Net Core 带来的一堆很好用的库,好在无论 corefx 还是 Asp.Net ...
- Spring Ioc-依赖注入的几种方式
一 setter方法注入 配置文件如下: <bean id="helloAction" class="org.yoo.action.SpringSetterHell ...
- (转)Java.lang.reflect.Method invoke方法 实例
背景:今天在项目中用到Method 的invoke方法,但是并不理解,查完才知道,原来如此! import java.lang.reflect.Method; /** * Java.lang.refl ...
- kafka生产实践
最近接触到一个APP流量分析的项目,类似于友盟.涉及到几个C端高并发的接口,这几个接口主要用于C端数据的提交.在没有任何缓冲的情况下,一个接口涉及到5张表的提交.压测的结果很不理想,主要瓶颈就在与RD ...
- 【原创】Easyui tree filter 过滤本地数据无效的原因
Easyui tree filter 过滤本地数据无效的解决方式 正确使用方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- Social Network Analysis的Centrality总结,以及networkx实现EigenCentrality,PageRank和KatzCentrality的对比
本文主要总结近期学习的Social Network Analysis(SNA)中的各种Centrality度量,我暂且翻译为中心度.本文主要是实战,理论方面几乎没有,因为对于庞大的SNA,我可能连门都 ...
- 超强、超详细Redis数据库入门教程(转载)
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...
- C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 一点感想 很意外的,第一 ...
- HTML学习笔记2
5.超链接 3种超链接: 1. 连接到其他页面 2. 锚: (是链接页面)指给超链接起一个名字,作用是连接到本页面或者其他页面的特定位置.使用name属性给超链起名字,本页要加# 3. 连接到邮件: ...
- SpringBoot启动流程解析
写在前面: 由于该系统是底层系统,以微服务形式对外暴露dubbo服务,所以本流程中SpringBoot不基于jetty或者tomcat等容器启动方式发布服务,而是以执行程序方式启动来发布(参考下图ke ...