JDBC数据库操作
启动MySQL数据库服务
网络课堂中共享的MySQL 5.1压缩包下载后,直接在C盘根目录下解压后, 进入bin目录,执行“启动服务.cmd”即可启动服务器(如果未放在C盘根目 录下,需要修改配置文件my.ini和启动服务.cmd)。 注意:使用MySQL期间不可关闭本窗口。可使用Ctrl+C关闭MySQL服务器。
如果启动时提示端口已经被占用(例如开机后自动启动了MySQL 8),可修改my.ini文件中的端口配置,由3306改为其它空闲的端口号。
root用户
MySQL数据库服务器启动后, MySQL默认授权可以访问该服务 器的用户只有一个,名字是root,密码为空。
应用程序以及MySQL客户端管理工具软件,都必须借助MySQL 授权的“用户”来访问数据库服务器。
MySQL数据库服务器启动后,不仅可以用root用户访问数据库服 务器,而且可以再授权能访问数据库服务器的新用户(只有root 用户有权利建立新的用户)。
MySQL客户端管理工具
Navicat for MySQL:可以在搜索引擎搜索Navicat for MySQL或登录: http://www.navicat.com.cn/download下载试用版或购买商业版,例如 下载navicat112_mysql_cs_x64.exe安装即可 (温馨提示:可以到网络课堂下载一个可用版)
启动navicat for MySQL 出现主界面。
在navicat for MySQL中点击连接,输入信息后确定
在连接名处右击,创建新数据库,输入数据库名,字符集和校对均选择gb2312...
如果在mysql里输入语句创建数据库 ,则会显示已存在数据库EDUC。我是在mysql里创建的。
但是,想插入数据时,却发现出现了中文编码的问题。
在网上试了几个,发现这个链接的可以帮助我。
ERROR 1366 (HY000): Incorrect string value: '\xC5\xAE' for column 'sex' at row 1
JDBC
Java提供了专门用于操作数据库的API,即JDBC (Java DataBase Connection)。JDBC操作不同的数据库仅仅是连接方式上的差 异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以 使用JDBC提供的API操作数据库。
➢ 程序经常使用JDBC进行如下的操作 :
(1)与一个数据库建立连接。
(2)向数据库发送SQL语句。
(3)处理数据库返回的结果。
连接MySQL数据库
MySQL数据库服务器启动后,应用程序为了能和数据库交互 信息,必须首先和MySQL数据库服务器上的数据库建立连接。 目前常用的连接数据库的方式是加载JDBC-数据库驱动(连接 器,即调用本地的JDBC-数据库驱动和相应的数据库建立连接。 Java运行环境将JDBC-数据库驱动转换为DBMS所使用的专用 协议来实现和特定的DBMS交互信息。
1.下载JDBC-MySQL数据库驱动
教材下载的是mysql-connector-java-5.1.40.zip,将该zip文件解压至硬盘, 在解压后的目录下的mysql-connector-java-5.1.40-bin.jar文件就是连接 MySQL数据库的JDBC-数据库驱动。将该驱动复制到JDK的扩展目录中, 比如:E:\jdk1.8\jre\lib\ext。
2.加载JDBC-MySQL数据库驱动
应用程序负责加载的JDBC-MySQL数据库驱动,代码如下:
try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ }
MySQL数据库驱动被封装在Driver类中,该类的包名是 com.mysql.jdbc,该类不是Java运行环境类库中的类,所以需要放 置在jre的扩展中
3.连接数据库
应用程序要和MySQL数据库服务器管理的数据库students(在11.3节建 立的数据库)建立连接,而有权访问数据库students的用户的id和密码分别是root和空,那么使用 Connection getConnection(java.lang.String) 方法建立连接的代码如下:
Connection con;
String uri = "jdbc:mysql://192.168.100.1:3306/students?user=root&password=&useSSL=true"; try{ con = DriverManager.getConnection(uri); //连接代码 } catch(SQLException e){ System.out.println(e); }
如果root用户密码是99,将&password=更改为&password=99即可
使用 Connection getConnection(java.lang.String, java.lang.String, java.lang.String) 方法建立连接的代码如下:
Connection con;
String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true"; String user ="root"; String password ="";
try{ con = DriverManager.getConnection(uri,user,password); //连接代码
} catch(SQLException e){ System.out.println(e);
}
4.注意汉字问题
需要特别注意的是,如果数据库的表中的记录有汉字,那么在建立 连接时需要额外多传递一个参数characterEncoding,并取值gb2312或 utf-8
String uri = "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8";
con = DriverManager.getConnection(uri, "root",""); //连接代码
查 询 操 作
查询操作的具体步骤如下
1.得到SQL查询语句对象
try{ Statement sql=con.createStatement(); } catch(SQLException e ){}
2.处理查询结果
有了SQL语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中。也就是说 SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象 是按“列”(字段)组织的数据行构成。
ResultSet rs = sql.executeQuery("SELECT * FROM students");
结果集rs的列数是4列,刚好和students的列数相同
对于
ResultSet rs = sql.executeQuery("SELECT sname, ssex FROM students");
内存的结果集对象rs列数只有两列,第一列是sname列,第2列是ssex列
ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数 据行,获得一行数据后,ResultSet对象可以使用getXxx方法获得字段 值(列值),将位置索引(第一列使用1,第二列使用2等)或列名传 递给getXxx方法的参数即可。表11.1给出了ResultSet对象的若干方法。
无论字段是何种属性,总可以使用 getString(int columnIndex)或 getString(String columnName) 方法返回字段值的字符串表示
3.关闭连接
ResultSet对象和数据库连接对象(Connection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失。这 就意味着,应用程序在使用ResultSet对象中的数据时,就必须始终保持和数据库的连接,直到应用程序将ResultSet对象中的数据查看完毕。
如果在代码
ResultSet rs = sql.executeQuery("SELECT sname, ssex FROM students");
之后立刻关闭连接 con.close();
程序将无法获取rs中的数据
相关文章:

mybatis学习7 实战项目
自己写一个实战项目,最好和hibernate做对比。转载于:https://www.cnblogs.com/liufei1983/p/7492214.html

凤凰网制作的 “中国挺住” 桌面与MSN,QQ头像下载
凤凰网制作的 “中国挺住” 桌面与MSN,QQ头像下载。 点击下载 转载于:https://www.cnblogs.com/yajiya/archive/2008/05/24/1206574.html

树莓派Android Things物联网开发:创建一个Things项目
【转载请注明出处: http://blog.csdn.net/leytton/article/details/77854144】《树莓派Android Things物联网开发》系列文章专栏 http://blog.csdn.net/column/details/17741.html树莓派Android Things物联网开发:入门及资料汇总树莓派Android Things物联网开发&…

使用JDBC进行MySQL 5.1的数据连接、查询、修改等操作练习。
目录 顺序查找 控制游标 条件与排序查询 1. where子语句 一般格式: 2. 排序 更新、添加与删除操作 1.更新 2.添加 3.删除 通用查询 顺序查找 所谓顺序查询,是指ResultSet对象一次只能看到一个数据行,使用 next()方法移到下一个数据行…

Tensorflow多线程输入数据处理框架(一)——队列与多线程
参考书 《TensorFlow:实战Google深度学习框架》(第2版) 对于队列,修改队列状态的操作主要有Enqueue、EnqueueMany和Dequeue。以下程序展示了如何使用这些函数来操作一个队列。 #!/usr/bin/env python # -*- coding: UTF-8 -*- # c…

编译器错误信息: CS0016
编译器错误信息: CS0016: 未能写入输出文件,..\Temporary ASP.NET Files\WebApp\d087da43\c12930d8\9ze28k_8.dll”--拒绝访问 编译器错误信息: CS0016: 未能写入输出文件“d:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\5177u\d087da43\c12930d8\9ze…

Visual Studio 2008 Samples Page
Visual Studio 2008 Samples Page http://msdn.microsoft.com/zh-cn/bb330936(en-us).aspx 如何实现 - 常规开发http://msdn.microsoft.com/zh-cn/library/ms246578.aspx Visual Studio 2008http://msdn.microsoft.com/zh-cn/library/aa187917.aspx .NET Framework 3.5http://m…

iOS开发网络篇—HTTP协议
说明:apache tomcat服务器必须占用8080端口 一、URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址、位置,互联网上的每个资源都有一个…

操作系统导论部分章节习题
进程 一。单选题(共1题,10.0分) 当某个进程进行系统调用以通过网络传输TCP数据包时,以下哪些步骤不会总是发生? A进程进入内核模式。 B,CPU的程序计数器转移到地址空间的内核部分。 C,该进…

Go-技篇第一 技巧杂烩
Go-技篇第一 技巧杂烩一句话技巧把你面向对象的大脑扔到家里吧,去拥抱接口。mikegehard学习如何使用Go的方式做事,不要把别的的编程风格强行用在Go里面。DrNic多用接口总比少用好。evanphx拥抱这种简洁、并行、工整的语言。francesc阅读官网golang.org上…

Visual Studio 2008 到底有多强?漫画告诉你 !
插入数据需要无数个SQL语句支持,而现在,你只需要有一个强大的LinQ巴士,就直接一次性全搞定,方便快捷 " 强大的中转站,帮你解决额外的问题,数据传输选择最优路径,完成工作。数据给了WCF&a…

使用c#生成高品质小空间的缩略图
dot自带的生成缩略图的方法是Bitmap.GetThumbnailImage这个方法生成的缩略图不够清晰,一般我们会使用Graphics高质量插值发生成清晰的缩略图,这时候大小会不尽人意,怎么办?我们可以使用jpeg压缩的方法压缩一下图片,这样…

将Project的内容导出成单独的XPO文件
AX跟VSS整合的版本管理可以通过创建知识库将当前层的代码全部签入到VSS中,但是如果不是一个团队开发solution,而是针对客户的需求随时做得一些小改动,一般都希望以Project的形式组织代码和发布代码。AX与VSS的整合没有提供一种方法可以将一个…

.Net Core MVC初学习
.net core已经出来很长一段时间了,没有很好的学习过,现在工作不那么忙了,参考官方文档,在这里记录自己的学习过程! ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程…

编译原理考点复习
名词填空、名词解释、解答题: 文法是什么?文法、句子、句型、确定有穷自动机(DFA)、非确定有穷自动机(NFA)的定义?编译过程主要有哪些功能模块?有什么辅助模块(表格管理…

网络工程师如何才能实现职位晋升
一、如何在公司得到攀升的机会?如果不想保持低月薪,就运用你的技术积极参与公司的业务发展从最近我们公司招生来看,一个很明显的问题阴魂不散的笼罩在“网络工程师”这个行业。问题的根本是对网络工程师职业前途的严重误解。很多人认为目前的…

Linux中/etc/resolv.conf文件简析
https://blog.csdn.net/lcr_happy/article/details/54867510转载于:https://www.cnblogs.com/answercard/p/10354514.html

第二章 Servlet核心技术 实训二
question.html <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>简单测试</title> </head> <body> <p>请回答下面的问题:</p> <form action"simpletest.do"meth…

BZOJ 4025 二分图
题目大意 给定一个\(n\)个点, \(m\)条边的无向图, 每条边在一定时间范围内存在. 要你判断每个时间点这张图是否为二分图.\(n \le 10^5\)\(m \le 2 \times 10^5\) Solution 我们考虑一个合法的二分图有什么性质: 图中不存在奇环, 即环上边数(点数)为奇数的环. 考虑如何判断每个时…

javascript对象之window对象详解
frames 表示当前窗口中所有frame对象的数组 status 表示浏览器的状态行信息 defaultstatus 表示浏览器的状态行信息 history 表示当前窗口的历史记录,这可以引用在网页导航中 closed 表示当前窗口是否关闭的逻辑值 document 表示当前窗口中显示的当前文档对象 location 表示当前…

Wsus简单笔记
一:安装前的要求1:iis6.0以上,bits、Asp.net2.02:sql20053:Microsoft Management Console 3.04:microsof report viewer redistributable 20055:ntsf分区二:安装1:过程比较简单,注意设置本地补丁…

机器学习-Sklearn
Scikit learn 也简称 sklearn, 是机器学习领域当中最知名的 python 模块之一. Sklearn 包含了很多种机器学习的方式:Classification 分类 Regression 回归 Clustering 非监督分类 Dimensionality reduction 数据降维 Model Selection 模型选择 Preprocessing 数据预处理 我们总…

[翻译]自动维护索引重新生成组织的SQL批处理语句
脚本来自《Inside Server 2005 T-SQL Programming》 SET NOCOUNT ON;DECLARE objectid int;DECLARE indexid int;DECLARE partitioncount bigint;DECLARE schemaname nvarchar(258);DECLARE objectname nvarchar(258);DECLARE indexname nvarchar(258);DECLARE partitionnum bi…

DTrace memory leak 内存泄露
http://blog.sina.com.cn/s/blog_538040b70100eecn.html如下程序用于跟踪,在分配和回收都会触发探针 #!/usr/sbin/dtrace -s pid$target:libc:malloc:entry{ self->trace 1; self->size arg0;}pid$target:libc:malloc:return/self->trace 1/{ …

Spark的安装和使用
Spark2.1.0入门:Spark的安装和使用 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04) 手把手教你在VirtualBox中与主机共享文件夹

SQL Server 2005系列教学(6) 多表操作及子查询
多表查询;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />人事表: 公司表:姓名性别年龄姓名公司地址张三男25李四女25张三新…

(点)分治学习笔记
哗我看了一下好像没有很详细专门讲分治的blog?那就主要先学一下点分治吧,其他的……等我记得把C一本通带到机房来再说吧先咕着啦 写在前面 刷题进度 入门题(0/3) 好题(0/9) 问题解决进度 Q1 Q2 正文 淀粉质 点分治 点分治就是在一…

十五个步骤收获学习的习惯
"真正的发现的航程,并非是在寻找新的土地,而且用新的视界去寻找"--普鲁斯特 "智慧日进者方值得尊敬。"-林肯 "我从不让我在学校所学的干扰我的教育"-马克吐温 如果公立学校尚未摧残你的灵魂,那么学习是一项极佳的活动。它…

熟悉scala命令,scala语言运行超级素数和猴子大王
实验目的 在Linux操作系统中安装Scala输入“scala”命令,熟悉地运行Scala解释器scala语言运行超级素数和猴子大王实验仪器 Virtualbox管理器 实验框图(电路图/流程图) 在Windows中使用VirtualBox安装Ubuntu,安装好scala后…

安装mayavi和VTK库的血泪史
一开始安装VTK库是从官网上下载,但是怎么都找不到whl文件,只有exe文件(vtkpython-7.1.1-Windows-64bit.exe)。下载安装之后再PyCharm中import vtk出错。当时认为是文件出错。后来在一篇博客(Python下VTK 编程 - lj6952…