-
MySQL教程之一个非常标准的连接Mysql数据库的示例
一.About Mysql
1.Mysql 优点
-
体积小、速度快、开放源码、免费
-
一般中小型网站的开发都选择 MySQL ,最流行的关系型数据库
-
LAMP / LNMP
Linux作为操作系统
Apache或Nginx作为 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实例代码
1 package com.my.connect; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.ResultSetMetaData; 8 import java.sql.SQLException; 9 /** 10 * 一个非常标准的连接Mysql数据库的示例代码 11 */ 12 public class ConnectDB { 13 14 public static void main(String[] args) { 15 // TODO Auto-generated method stub 16 Connection con = null;// 创建一个数据库连接 17 PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement 18 ResultSet result = null;// 创建一个结果集对象 19 ResultSetMetaData metaData = null;//创建一个表头信息对象 20 try { 21 // 加载Mysql驱动程序 ,oracle的: Class.forName("oracle.jdbc.driver.OracleDriver"); 22 //不知道可以打出Driver 看导入包的提示 23 Class.forName("com.mysql.jdbc.Driver"); 24 String url = "jdbc:mysql://localhost:3306/studata";//localhost 为本级地址,studata为数据库名 25 String userName = "root"; 26 String password = "root"; 27 con = DriverManager.getConnection(url, userName, password);// 获取连接 28 29 System.out.println("数据库连接成功!"); 30 31 String sql = "select * from studata s where s.stuNo = ?";//预编译语句,?代表参数 32 pre = con.prepareStatement(sql);// 实例化预编译语句 33 pre.setInt(1, 10000);;// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 34 result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数 35 metaData = result.getMetaData();//获取表头信息 36 while (result.next()) { 37 // 当结果集不为空时 38 System.out.println(metaData.getColumnName(1) + " " + metaData.getColumnName(2)); 39 40 System.out.println(result.getString("stuNo") + " " + result.getString("stuName")); 41 } 42 43 } catch (Exception e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 } finally { 47 // 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 48 // 注意关闭的顺序,最后使用的最先关闭 49 if (result != null) 50 try { 51 result.close(); 52 if (pre != null) 53 pre.close(); 54 if (con != null) 55 con.close(); 56 System.out.println("数据库连接已关闭!"); 57 } catch (SQLException e) { 58 // TODO Auto-generated catch block 59 e.printStackTrace(); 60 } 61 62 } 63 64 } 65 66 }