博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java_JDBC_MySQL学习笔记
阅读量:4029 次
发布时间:2019-05-24

本文共 6082 字,大约阅读时间需要 20 分钟。

参考资料:

1、马士兵_JDBC_MySQL简明教程_简单BBS项目课堂实录视频教程

2、传智播客视频2015_33期

环境:Eclipse Java EE IDE (Neon) + MySQL 5.7

一、MySQL安装

http://jingyan.baidu.com/article/7e440953d6f0702fc1e2ef61.html 基本上就是一路next;奇怪的是视频里边提到需要特别注意默认编码的设置,我居然没有看到,不管了,不影响使用;

MySQL安装完后自动运行的是

二、MySQL入门

MySQL的基本语法可以参考《MySQL中文手册.chm》或者 官网文档https://dev.mysql.com/doc/refman/5.7/en/tutorial.html(其实语法看一下就知道怎么回事了,比较固定)

使用流程:创建数据库-》选择数据库-》创建表-》增/删/改/查数据

数据库存储结构:数据库、表、数据(一个数据库可以包含多张表,一张表包含多个数据)

[记得在使用XAMPP的时候,创建数据库有专门的工具,非常便捷,SQL语法都可以不用的哈,只是不太清楚Java Web以后会不会也很便捷]

相关工具:

1. 命令行——比较难用,不过想想linux下边也是这样子,暂且忍着

2. MySQL workbench

3. SQLyog

[注意的是:2跟3里边运行时,运行的是鼠标选中的语句;]

实例:

-- 1.创建数据库create database db_test;-- 2.选择数据库use db_test;-- 3.创建表 create table teacher( 	tid int, 	tname varchar(20),    tage int, 	temail varchar(20)  );-- 查看表desc teacher;-- 4.增/删数据-- 插入所有字段,按次序插入insert into teacher values(1,'San Zhang',20,'sz@');insert into teacher values(2,'Si Li',25,'sl@');insert into teacher values(3,'Er Wang',26,'ew@');insert into teacher values(4,'Zi Ma',35,'zm@');insert into teacher values(5,'Feng Shun',40,'fs@');insert into teacher values(6,'Cha Niu',40,'cn@');insert into teacher values(7,'San Zhang',35,'sz1@');-- 查询数据select * from teacher;

三、JDBC之MySQL

其实实例可以参考安装完MySQL后的《connector-j.pdf》——通过查找 “com.mysql.jdbc.Driver”很容易就找到实例所在位置

1)实例一:简单连接以及测试

import java.sql.*;/*** *  * @连接MySQL数据库 * */public class TestMysql {	//URL里边的db_test是MySQL里边的一个数据库名称	private static String URL = "jdbc:mysql:loadbalance://" +			"localhost:3306,localhost:3310/db_test?" +			"loadBalanceConnectionGroup=first&loadBalanceEnableJMX=true&useSSL=true";		public static void main(String[] args) {		Connection conn=null;		Statement stmt=null;		ResultSet rs=null;				try{			Class.forName("com.mysql.jdbc.Driver");			//URL,账号,密码			conn=DriverManager.getConnection(URL, "root", "mysql_1005");			stmt=conn.createStatement();			rs=stmt.executeQuery("select * from teacher");//查询数据			while(rs.next()){				System.out.println(rs.getString("tname"));			}		}catch(ClassNotFoundException e){			e.printStackTrace();		}catch(SQLException e){			System.out.println("SQLException: "+e.getMessage());			System.out.println("SQLState: "+e.getSQLState());			System.out.println("VendorError: "+e.getErrorCode());		}finally{			try {				if(rs!=null){					rs.close();//关闭					rs=null;				}				if(stmt!=null){					stmt.close();					stmt=null;				}				if(conn!=null){					conn.close();					conn=null;				}			} catch (SQLException e) {				// TODO: handle exception				e.printStackTrace();			}		}	}}
中途遇到的问题:

使用-jdbc连接My出现如下警告:

Establishing SSL connection without server’s identity verification is not recommended. According to My 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

原因是My在高版本需要指明是否进行SSL连接。解决方案如下:

在mysql连接字符串url中加入ssl=true或者false即可,如下所示。

url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true

解决办法见:http://www.mikel.cn/%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0/%E6%95%B0%E6%8D%AE%E5%BA%93/java%E8%BF%9E%E6%8E%A5mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AD%A6%E5%91%8A%EF%BC%9Aestablishing-ssl-connection-without-servers-identity-verification-is-not-recommend-%E6%B8%B4%E6%9C%9B%EF%BC%8C.html

2)Eclipse配置SQL Explorer插件

参考:http://blog.csdn.net/kinmet2010/article/details/5864046   或者   http://blog.csdn.net/tjzhaomengyi/article/details/51191836

实现步骤:

    1.eclipse版本:3.2及以上

    2.自动添加插件  help  -----  software  updates   ----  addsite   

    3.window---preferences --- SQL  Explorer  ----JDBC  Driver  ----配置相关的设置

       添加数据库jar文件后  list Driver  ok 

    4.打开 试图 show  view   ------- SQL  Explorer   connections  

    5.新建一个数据库连接

    6.新建sql脚本文件   用sql  Editor方式打开

配置和使用:

重启Eclipse,打开SQL Explore的视图(perspective)

a)新打开后左侧的SQL Explorer的View是空白,因为没有配置驱动 【Connections视图通过 Window- >Show View-->other...添加】

b)配置JDBC,

在Connections的view打开Create New Connection Profile按钮

出现Create New Connection的Dialog

c)点击上图中Add/Edit Drivers按钮进入数据库驱动,如下图

左侧图是打开之后,可以选择Add添加一个自定义的连接,也可以在原有的进行Edit,我们选择Add添加一个名字叫MySQLDriver的驱动,在Extra Class Path子栏点击Add JARs,选择之前下载好的JDBC的JAR包,Driver Class Name就叫做com.mysql.jdbc.Driver,Example URL设置成jdbc:mysql://localhost/,这里我没有设置端口号,默认应该看来就是3306,如果需要配置端口号的可以看些其他的默认配置的写法,有这样JDBC驱动就搞定了。

d)回到Connection子栏view的Create New Connection对话框,创建一个名字叫MySQL,驱动选择我们刚配置过的MySQLDriver数据库驱动,这里数据库的URL会自动跟上MySQLDriver配置好的URL,选择用户为root。OK~

ok后,在connection视图中就可以看到我们连的结果了

上图中右键MySQL选择Connect

默认大家之前配置好本地的MySQL,填写下密码,然后在Eclipse右侧看到视图Database Structure,root用户下的sql就显示出来了,很简单的配置过程,我可以继续看去了

最终所得MySQL某一数据库属性 ^_^

实例(bbs数据库_马士兵):

import java.sql.*;/* * bbs实例 */public class ArticleTree {	//URL里边的bbs是MySQL里边的一个数据库名称	private static String URL = "jdbc:mysql:loadbalance://" +				"localhost:3306,localhost:3310/bbs?" +				"loadBalanceConnectionGroup=first&loadBalanceEnableJMX=true&useSSL=true";			public static void main(String[] args) {		new ArticleTree().show();	}		public void show(){		Connection conn=null;		Statement stmt=null;		ResultSet rs=null;		try{			Class.forName("com.mysql.jdbc.Driver");			//URL,账号,密码			conn=DriverManager.getConnection(URL, "root", "mysql_1005");			stmt=conn.createStatement();			rs=stmt.executeQuery("select * from article where pid=0");			while(rs.next()){				System.out.println(rs.getString("cont"));				tree(conn, rs.getInt("id"), 1);			}		}catch(ClassNotFoundException e){			e.printStackTrace();		}catch(SQLException e){			e.printStackTrace();		}finally{			try{				if(conn!=null){					conn.close();					conn=null;				}				if(rs!=null){					rs.close();					rs=null;				}				if(stmt!=null){					stmt.close();					stmt=null;				}			}catch(SQLException e){				e.printStackTrace();			}		}	}		//参数:SQL连接、ID、层次	private void tree(Connection conn, int id, int level){		Statement stmt=null;		ResultSet rs=null;				StringBuffer strPre=new StringBuffer("");		for(int i=0;i
输出结果:

蚂蚁大战大象    大象被打趴下了        蚂蚁也不好过        瞎说            没有瞎说        大象进医院了            护士是蚂蚁    怎么可能        怎么没有可能        可能性是很大的

你可能感兴趣的文章
Linux usb 设备驱动 (1)
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
关于静态块、静态属性、构造块、构造方法的执行顺序
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
idea讲web项目部署到tomcat,热部署
查看>>
优化IDEA启动速度,快了好多。后面有什么优化点,会继续往里面添加
查看>>
JMeter 保持sessionId
查看>>
IDEA Properties中文unicode转码问题
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>