1 在开发环境中加载指定数据库的驱动程序。
接下来的实验中,使用数据库MySQL,所以需要下载MySQL支持JDBC的驱动程序(mysql-connector-java-5118-binjar)。
2 开发环境是MyEclipse,将下载得到的驱动程序加载进开发环境中。
3 在Java程序中加载驱动程序。
在Java程序中,通过 “ClassforName(“指定数据库的驱动程序”)”
方式来加载添加到开发环境中的驱动程序,例如ClassforName(“commysqljdbcDriver”)。
4 创建数据连接对象:通过DriverManager类创建数据库连接对象Connection。
DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法,根据数据库的URL、用户名和密码,创建一个JDBC
Connection 对象。代码如:Connection connection = DriverManagergetConnection(“连接数据库的URL", "用户名",
"密码”)。
其中,URL=协议名+IP地址(域名)+端口+数据库名称;用户名和密码是指登录数据库时所使用的用户名和密码。具体示例创建MySQL的数据库连接代码如下:
Connection connectMySQL =
DriverManagergeiConnection(“jdbc:mysql://localhost:3306/myuser","root"
,"root" );
5 创建Statement对象:Statement 类的主要是用于执行静态 SQL
语句并返回它所生成结果的对象。
通过Connection 对象的 createStatement()方法可以创建一个Statement对象。例如:Statement statament =
connectioncreateStatement(); 具体示例创建Statement对象代码如下:Statement statamentMySQL =connectMySQLcreateStatement();
6 调用Statement对象的相关方法执行相对应的 SQL
语句:通过execuUpdate()方法用来数据的更新,包括插入和删除等 *** 作,例如向staff表中插入一条数据的代码:
statementexcuteUpdate( "INSERT INTO
staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 321,
'M', 'china','Personnel','3','3000' ) ") ;
7 通过调用Statement对象的executeQuery()方法进行数据的查询,而查询结果会得到
ResulSet对象,ResulSet表示执行查询数据库后返回的数据的集合,ResulSet对象具有可以指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。如果当next()方法返回null,则表示下一行中没有数据存在。使用示例代码如下:
ResultSet resultSel =
statementexecuteQuery( "select from staff" );
8 关闭数据库连接:使用完数据库或者不需要访问数据库时,通过Connection的close() 方法及时关闭数据连接。
可以使用MySQL推出的MySQLConnector/Net组件,该组件是MySQL为ADONET访问MySQL数据库设计的NET专用访问组件,完成该组件后,需要在项目中引用这个组件,之后在程序中引用命名空间MySqlDataMySqlClient,即可开始进行连接MySQL数据库的 *** 作了,示例如下:
protected
voidMySqlCon()
{
//数据库连接字符串跟连接SQLSERVER没有区别
string
constr
=
"server=localhost;UserId=root;password=root;Database=test";
//下面使用MySql
Connector/net提供的专用对象
MySqlConnection
mycon
=
new
MySqlConnection(constr);
myconOpen();
MySqlCommandmycmd
=
new
MySqlCommand("select
from
users",
mycon);
MySqlDataReader
myreader
=
mycmdExecuteReader();
while
(myreaderRead())
{
if
(myreaderHasRows)
{
MessageBoxShow(myreaderGetString("email")
);
}
}
myreaderClose();
myconClose();
对于想要将自动生成的数据添加到表中的任何人来说, MySQL 虚拟列 是一个强大、易于使用和高级的功能。
INSERT 生成的列允许您在不使用and UPDATE 子句的情况下将自动生成的数据存储在表中。 这个有用的特性自 57 版 起就已成为 MySQL 的一部分,它代表了在生成数据时触发器的另一种方法。此外,生成的列可以帮助您更轻松、更高效地查询。
虚拟列 列类似于普通列,但您不能手动更改其值。这是因为表达式定义了如何根据从同一行的其他列中读取的其他值来生成生成列的值。因此,生成的列在表的域内工作,其定义不能涉及 JOIN 语句。
换句话说,您可以将生成的列视为一种视图,但仅限于列。请注意,生成的列与 SQL 触发器 不同,您只能在使用 CREATE TABLE or语句时定义它们,语法如下: ALTER TABLE
该 AS (generated_column_expression) 子句指定要添加或更新到表中的列是生成的列。定义 MySQL 将用于计算列值的 generation_expression 表达式,它不能引用另一个生成的列或除当前表的列之外的任何内容。另外,请注意生成表达式只能涉及不可变函数。例如,您不能在生成的列表达式定义中使用返回当前日期的函数,因为它是一个可变函数。
您还可以在关键字前面 AS 加上 GENERATED ALWAYS 关键字以使生成的列的性质更加明确,但这是可选的。然后,您可以指示生成列的类型是 VIRTUAL 还是 STORED 。您将在下面的章节中了解这两种类型之间的区别。默认情况下,如果没有在查询中明确指定,MySQL 会将生成的列标记为 VIRTUAL
现在让我们看看生成的列语法在 CREATE TABLE 查询中的作用:
在此示例中,该 full_name 列将自动存储 first_name 和 last_name 列的连接。
如前所述,您可以将生成的列定义为 VIRTUAL 或 STORED。现在让我们仔细看看这两种类型。
MySQL 不存储标记为 VIRTUAL 的 虚拟列 。这意味着 MySQL 在需要时动态评估其值。 BEFORE 这通常在触发任何查询后立即发生。换句话说,虚拟生成的列不占用存储空间。
MySQL 存储任何生成的标记为 STORED 的列。这意味着每次插入或更新行时,MySQL 都会评估其值并将其存储在磁盘上。换句话说,存储列需要存储空间,就好像它是普通列一样。
现在让我们进一步了解虚拟列和存储生成列的优缺点。
优点
缺点
优点
缺点
采用生成的列有几个原因,但以下三个是最重要的。
如您所见,您可以通过将四列与以下生成的列聚合来轻松生成此数据字段:
这将产生:
在这种情况下,生成的列使您能够直接在数据库级别标准化数据字段格式。此外,存储生成的列避免了每次需要时都构造此字段的不可避免的开销。
通常,您使用网站 URL 中的资源 ID 或REST API来检索您需要的数据。但是公开暴露您的 ID 可能会带来安全问题。当您发现自己使用自动增量 ID 时尤其如此,这很容易预测并使抓取或机器人攻击更容易。
为避免这种情况,您可以考虑通过使用自动生成的、随机的、更安全的公共 ID 来隐藏您的原始 ID。您可以通过对您的 ID 进行散列处理,使用虚拟生成的列来实现这一点,如下所示:
请注意,为避免生成已知的哈希值,您可以将您的 ID 与特殊关键字连接起来。 在此处了解有关 MySQL 加密和压缩功能的更多信息。
过滤数据时,有些列比其他列更有用。此外,您通常必须更改存储在列中的值的表示形式,以使过滤更简单或更直观。您可以定义一个有用的生成列来存储以所需格式执行过滤所需的信息,而不是在每个过滤器查询中执行此 *** 作。
例如,您可以定义一个生成的列,以便更轻松地找到篮球队中的球员,如下所示:
这样的列将产生:
如前所述,您只能在表中使用生成的列。此外,它们只能涉及不可变函数,并且MySQL 生成它们的值以响应 INSERT or UPDATE 查询。另一方面,触发器是 MySQL 自动执行的存储程序,每当与特定表关联的 或 事件发生 INSERT 时 UPDATE 。 DELETE 换句话说,触发器可以涉及多个表和所有 MySQL 函数。与生成的列相比,这使它们成为更完整的解决方案。同时,MySQL 触发器本质上使用和定义更复杂,也比生成的列慢。
使用命令行连接MySQL数据库:
Windows *** 作系统下,开始——运行,打开"运行"对话框,输入cmd,点击“确定”即可进入DOS窗口。
DOS窗口输入登录MySQL数据库命令
mysql -h 127001 -u root -p
命令参数说明:
mysql是登录数据库的命令,-h 后面跟服务器的IP,由于本示例MySql服务器安装在本地,因此IP地址为127001;-u 后面跟用户名,本示例采用 root用户登录;-p 后面跟登录密码。
输入上述命令后回车,再输入登录密码,在回车即可完成登录MySQL数据库服务了。跟着可以运行use databaseName语句 *** 作某个数据库了
你的xxsql文件里面应该是SQL语句,导入的方法首选在命令行下 *** 作,在mysql>提示符下,输入下面的命令完成导入:
mysql>source xxsql
source是命令,功能是执行后面的xxsql文件里面的语句。
以上就是关于在java中怎样连接mysql数据库全部的内容,包括:在java中怎样连接mysql数据库、如何连接MySQL数据库、MySQL数据库必会技能,虚拟列的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)