一个非常标准的连接Mysql数据库的示例代码

时间:2023-03-09 15:40:55
一个非常标准的连接Mysql数据库的示例代码

一.About Mysql

1.Mysql 优点

  • 体积小、速度快、开放源码、免费

  • 一般中小型网站的开发都选择 MySQL ,最流行的关系型数据库

  • LAMP / LNMP

  • Linux作为操作系统

  • ApacheNginx作为 Web 服务器

  • MySQL作为数据库

  • PHP作为服务器端脚本

  • 都是免费或开放源码软件,不用花一分钱就可以建立起一个稳定、免费的网站系统

2.登陆MySQL

  • 登陆:mysql –h 主机名 -u 用户名 –p

  • 注销:quit;

  • 修改密码:mysqladmin –uroot –p旧密码 password 新密码

3.可视化工具

phpMyAdmin、MySQL-Front、MySQL Workbench、Navicat等

4.sql语句

  • 不区分大小写

  • 以分号结尾

  • 注释:

  • #注释内容直到行尾

  • --注释内容直到行尾

  • /*注释内容*/

5.执行环境

  • Linux:mysql shell

  • Windows:Command Line Client

  • 可视化工具的SQL 编辑器

6.where 条件

  • 比较运算符:=、 >、 <、 >=、 <=、 !=、 <>

  • 扩展运算符:is null、 is not null、 like、 in、 between

  • 逻辑运算符:and、 or

  • 函数:count、sum、avg、max、min

  • 排序:order by

  • 分组:group by

7.操作数据

  • insert into 表名 values (值1, 值2, ...);

  • insert into 表名 (列名1, 列名2, ... ) values (值1, 值2, ...);

  • 删除所有数据:delete from 表名;

  • 删除指定数据:delete from 表名 where 条件;

  • 更新所有数据:update 表名 set 列名=新值;

  • 更新指定数据:update 表名 set 列名=新值 where 条件;

  • 更新多列:update 表名 set 列名1=值1, 列名2=值2 [where 条件];

  • 更新为默认值:update 表名 set 列名=default [where 条件];

  • 查询所有数据:select 列名 from 表名;

  • 查询指定数据:select 列名 from 表名 [where 条件];

  • 查询多个列:select 列名1, 列名2 from 表名 [where 条件];

  • 查询所有列:select * from 表名 [where 条件];

  • 指定别名:select 列名 as 别名 from 表明 [where 条件];

  • 查询唯一值:select distinct 列名 from 表名;

二.示例代码

1.maven依赖

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.2</version>
</dependency>

2实例代码

 package com.my.connect;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
/**
* 一个非常标准的连接Mysql数据库的示例代码
*/
public class ConnectDB { public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con = null;// 创建一个数据库连接
PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result = null;// 创建一个结果集对象
ResultSetMetaData metaData = null;//创建一个表头信息对象
try {
// 加载Mysql驱动程序 ,oracle的: Class.forName("oracle.jdbc.driver.OracleDriver");
//不知道可以打出Driver 看导入包的提示
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/studata";//localhost 为本级地址,studata为数据库名
String userName = "root";
String password = "root";
con = DriverManager.getConnection(url, userName, password);// 获取连接 System.out.println("数据库连接成功!"); String sql = "select * from studata s where s.stuNo = ?";//预编译语句,?代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
pre.setInt(1, 10000);;// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
metaData = result.getMetaData();//获取表头信息
while (result.next()) {
// 当结果集不为空时
System.out.println(metaData.getColumnName(1) + " " + metaData.getColumnName(2)); System.out.println(result.getString("stuNo") + " " + result.getString("stuName"));
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
try {
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("数据库连接已关闭!");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } } }

3.运行结果

数据库连接成功!
stuNo stuName
10000 赵军
数据库连接已关闭!