参考链接: Java数据库连接JDBC驱动程序

前言:今天有朋友问我原生的java连接数据库,因为框架的使用,如果基础不牢固的人,是很容易遗忘原生的连接方式。今天正好趁此做一下回顾:

这里只考虑原生方式,框架就不在这里细说。   一、先大体搞清楚连接时,常用元素都是什么作用:   在MySQL的官方文档中,这样解释说到:

java.sql.Driver 它在MySQL Connector / J 中实现的类的名称 是 com.mysql.jdbc.Driver,也就是驱动程序。你可以把它理解为发动机,没了它,其他都没扯。  URL 有了发动机之后,你要开始利用它的力量,也就是为它指明前进的方向,而URL就是它的方向。 值得一提的是,目前连接URL的通用格式是这样的:

protocol//[hosts][/database][?properties]

protocol:一种连接协议,约定的规则。

hosts:主机名,通常后跟端口号,例如当前主机默认就是localhost:3306,当然也可以多主机连接,这里暂时不表。

database:数据库嘛

其实应用测试时也就是这样的:

jdbc:mysql://localhost:3306/test

username 数据库连接的用户名 passowrd 连接密码Connection 与数据库建立连接关系,通常为 DriverManager.getConnection(url, username, password)。这里可以很明显的感觉出来,每个元素所产生的作用。Statement / PreparedStatement ,需要特别注意的是,我们提倡使用后者,也就是预编译语句。 PreparedStatement好处: 简化Statement中的操作 提高执行语句的性能 可读性和可维护性更好 在代码示例中,语法会详细体现。有了PreparedStatement语句之后,我们可以采用以下语句进行执行: executeQuery(String) 查询 executeUpdate(String SQL) 更新数据 execute(String SQL) 如果你不知道是查询还是修改,可以使用这个语句

二、示例代码及注释 准备: 首先要导入mysql-connector-java 的jar包 其次,在数据库中准备如下格式的表:  之后写基本的连接代码 为了实现代码的重用,我对两个基本方法添加和查询进行封装: 这是接口:(User类可自行写入)

public interface UserDao {

public void add(User user);

public User findByUsername(String username);

}

下面是实现类:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import cn.bang.user.domain.User;

public class JdbcUserDao implements UserDao {

@Override

public void add(User form) {

String driverClassName = "com.mysql.jdbc.Driver";    //启动驱动

String url = "jdbc:mysql://localhost:3306/test";    //设置连接路径

String username = "root";    //数据库用户名

String password = "123";    //数据库连接密码

Connection con = null;        //连接

PreparedStatement pstmt = null;    //使用预编译语句

ResultSet rs = null;    //获取的结果集

try {

Class.forName(driverClassName); //执行驱动

con = DriverManager.getConnection(url, username, password); //获取连接

String sql = "INSERT INTO USER VALUES(?,?,?,?)"; //设置的预编译语句格式

pstmt = con.prepareStatement(sql);

pstmt.setString(1, form.getUsername());

pstmt.setString(2, form.getPassword());

pstmt.setInt(3, form.getAge());

pstmt.setString(4, form.getGender());

pstmt.executeUpdate();

} catch (Exception e) {

throw new RuntimeException(e);

}finally {

//关闭资源,倒关

try {

if(rs != null) rs.close();

if(pstmt != null) pstmt.close();

if(con != null) con.close();  //必须要关

} catch (Exception e) {

}

}

}

@Override

public User findByUsername(String username) {

String driverClassName = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://localhost:3306/test";

String mysqlusername = "root";

String password = "123";

Connection con = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

try {

Class.forName(driverClassName);

con = DriverManager.getConnection(url, mysqlusername, password);

String sql = "SELECT * FROM USER WHERE username=?";

pstmt = con.prepareStatement(sql);

pstmt.setNString(1, username);

rs = pstmt.executeQuery();

if(rs == null) {

return null;

}

if(rs.next()) {

User user = new User();

user.setUsername(rs.getString("username"));

user.setPassword(rs.getString("password"));

user.setAge(rs.getInt("age"));

user.setGender(rs.getString("gender"));

return user;

} else {

return null;

}

} catch (Exception e) {

throw new RuntimeException(e);

}finally {

//关闭资源,倒关

try {

if(rs != null) rs.close();

if(pstmt != null) pstmt.close();

if(con != null) con.close();  //必须要关

} catch (Exception e) {

}

}

}

}

开始进行测试

这时候我们去数据库中查看:

其中验证码我简单使用的一个类引入的。

资料引导: MySQL官方文档

[转载] 1.1Java使用JDBC原生方式连接MySql数据库相关推荐

  1. S+MySQL——3.使用ODBC方式连接MySQL数据库

    文章目录 引言 1. 建立一个MFC对话框项目 2. 控件布局 2.1 添加控件 2.2 引入List Control控件类 2.3 定义控件变量 2.4 添加按钮点击响应函数 2.4 初始化List ...

  2. Java原生代码连接MySQL数据库

    本章我们介绍, 如何用java原生代码实现连接MySQL数据库并实现基本的增,删,改,查操作. 为了便于演示,首先我们使用Navicat Premium新建一个user表并添加如下数据: ​​​​​​ ...

  3. Java 原始的JDBC方式连接MySQL数据库【钢镚核恒】

    Java JDBC 简介 JDBC(Java DataBase Connectivity,Java数据库连接) JDBC 可让Java通过程序操作关系型数据库 JDBC 基于驱动程序实现与数据库的连接 ...

  4. c 连接mysql怎么增删改_C++ API方式连接mysql数据库实现增删改查

    这里复制的 http://www.bitscn.com/pdb/mysql/201407/226252.html 一.环境配置 1,装好mysql,新建一个C++控制台工程(从最简单的弄起,这个会了, ...

  5. 2.PHP利用PDO连接方式连接mysql数据库

    代码如下 <?php$serverName = "这里填IP地址";$dbName = "这里填数据库名";$userName = "这里填用户 ...

  6. datagrip jdbc驱动_DataGrip连接MySQL数据库

    本文主要介绍使用DataGrip创建MySQL数据库连接中遇到的一些经验和坑.由于疫情原因至今还在家里实习,所以需要远程连接数据库,由于刚刚接触后端还不太了解这方面的东西,所以请教同事这方面的问题,目 ...

  7. php连接mysql_PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  8. php连接虚拟机中mysql数据库吗,PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MysqL数据库的三种方式(MysqL.MysqLi.pdo),结合实例形式分析了PHP基于MysqL.MysqLi.pdo三种方式连接MysqL数据库的相关操作技巧与 ...

  9. php 复制mysql数据库_PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

最新文章

  1. db2删除大量数据_Python 连接数据库的多种方法
  2. 项目管理沙龙第七次聚会纪要
  3. 20211006 线性变换
  4. JS实现的展开隐藏效果
  5. Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)
  6. 将你的Vim 打造成轻巧强大的IDE
  7. ipvs,ipvsadm的安装及使用
  8. 华为 eNSP 模拟器安装教程(内含下载地址)
  9. K-近邻算法学习总结
  10. SQL 分组排序group by
  11. Nginx: 104: Connection reset by peer 错误
  12. 什么是无刷直流电机(BLDC)以及如何使用Arduino控制它
  13. 2017网易雷火实习生招聘编程题
  14. easyui treegrid
  15. 算法笔记04--分治法之寻找最大最小元素
  16. 架构模式-VIPER
  17. 我的杂谈之学习陈氏太极拳精要18势
  18. 《演讲之禅》读书笔记
  19. 计算机一级wpsoffice知识点,2016年计算机一级《WPS Office》考试大纲
  20. 行业分析-全球与中国甚高频数据交换系统市场现状及未来发展趋势

热门文章

  1. cas4.2.7与shiro进行整合
  2. (一)uboot的移植与制作
  3. usb大容量存储设备驱动程序_20年历史了!为什么USB接口还存在?网友:原来如此...
  4. c语言的程序结构语序,第3章 C语序结构.doc
  5. linux同时安装python2和python3_linux-Centos7安装python3并与python2共存
  6. base64 能放数组里面么_数组:总结篇
  7. mysql 快速插入(insert)多条记录
  8. Problem A: 童年生活二三事
  9. UVA1025——A Spy in the Metro【dp】
  10. 第 11 章 日志管理 - 089 - 初探 ELK