java调用linux mysql_Linux下Java调用MySql的第一个例子(全过程) 及 MySql改密码的种种误区...

本文详细介绍了如何在Linux环境下使用Java连接MySQL数据库,包括解压JDBC驱动、创建数据库和表、编写Java代码进行数据操作。同时,文章还澄清了常见密码修改误区,提供了两种安全改密的方法,并提醒了在命令行使用时的注意事项。
摘要由CSDN通过智能技术生成

第三步:解压mysql-connector-java-5.1.24.tar.gz这个文件到/usr/local/java/。事实上这个目录是任意的,只不过为了方便。我把jdk和eclipse都安装到了上面这个目录下。如下所示:

0818b9ca8b590ca3270a3433284dd417.png

第四步:新建一个TestMySql工程,右键工程---build path---Add External Archives,将上面的mysql-connector-***文件夹下的.jar文件添加进来。

第五步:登陆到mysql创建一个数据库yan1,在这个数据库里创建表users。相关命令:

登陆命令:mysql -u root -p;回车输入密码

建库: create database yan1;

显示库: show databases;

建表:create table users(userId varchar(8), userName varchar(8));

插入数据: insert into users values("001", "wenshu");

insert into users values("002", "puxian");

显示数据:select * from users;

删库: drop database yan1;

第六步:在java里写程序,源码如下:

package yan.guoqi.testmysql;

import java.sql.*;

public class TestMySql {

//JDBC驱动位置

private String driver ="com.mysql.jdbc.Driver"; //这个驱动是默认的//测试数据库TestDB的位置

private String url = "jdbc:mysql://localhost:3306/yan1"; //yan1是数据库的名字//Mysql的用户名和密码

private String user = "root";

private String password = "123456";

//连接句柄

private Connection conn = null;

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("您好!");

TestMySql test = new TestMySql();

test.test();

}

/*Java连接数据库*/

public void connect() {

//加载数据库JDBC驱动

try {

Class.forName(driver);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

//利用给定的数据库位置,用户名和密码连接数据库

try {

conn = DriverManager.getConnection(url, user, password);

if(!conn.isClosed()){

System.out.println("Succeeded connect to the Database");

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/*关闭连接*/

public void close() {

try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/*测试数据库接口函数*/

public void test() {

//连接

connect();

try {

//具体如何调用Mysql执行特定sql语句

Statement statement = conn.createStatement();

String sql = "select * from users"; //注意这里的users是建的表的名字ResultSet rs = statement.executeQuery(sql);

//遍历select结果

while(rs.next()){

//rs.getString(String)获得对应某条记录的对应列名的值

System.out.println("Id: "+rs.getString("userId") +"Name:"+rs.getString("userName"));

//注意userId和userName和建的表里面的列保持一致}

} catch (SQLException e) {

e.printStackTrace();

}

close();

}

}

在控制台里就会打印出信息!

事实上我们可以简化程序,真正的有效代码就四行,简化后的代码如下:

package yan.guoqi.testmysql2;

import java.sql.*;

public class TestMySql {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

Class.forName("com.mysql.jdbc.Driver");

Connection ct = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/yan1", "root", "123456");

Statement st = ct.createStatement();

ResultSet rs = st.executeQuery("select * from users");

while(rs.next()){

System.out.println("Id: "+ rs.getString(1)+" Name: "+ rs.getString(2));

}

} catch (Exception e) {

// TODO: handle exception

System.out.println("异常!");

}

}

}

另外,每次新建工程都要把那个包在path里面添加以下很不方便。可以将那个mysql-connector-java-5.1.24-bin.jar拷贝到jdk安装目录/jre/lib/ext文件夹下就ok了,不用再添加path了。

改密码的注意事项

假定现在用密码123456 可以登陆到数据库,要将密码改成yanyan。

第一种方式:在终端里,注意现在还没有登陆到数据库,输入命令mysqladmin -p123456 password yanyan

会出现这么一句警告:Warning: Using a password on the command line interface can be insecure.这表示已经改成功了。常见的误区:

误区一:用原密码已经登陆到mysql了,再这么改就会报错。一定注意,直接在终端里,未登陆前改。

误区二:将-p123456 写成 -p 123456.这样会报错的,-p后面不能带空格。

误区三:password前面加了一个“-”.也是会报错。

注意:password和新密码之间一定要有空格。新密码可以用""括起来。当有特殊字符时,这个引号是必须的。      关于改密码参见http://www.voidcn.com/article/p-egrqqtmf-mw.html,里面的第二种方法也就是我上面说的几个误区,直接用他的命令是会报错的。参照他的说法,在第一次登陆时在终端里输入mysqladmin -u root password "xxxx", 就可以设置密码为xxxx了。这一点我没有验证。注意,他说的是mysqladmin -u root -password ab12这是错误的,password前面不能有“-”.

第二种方式:登陆到mysql后,进行更改

mysql> update mysql.user set password=PASSWORD('yanyan') where user='root';

Query OK, 4 rows affected (0.00 sec)

Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

误区:只运行了第一行命令,没有flush privileges是改不了密码的。另,这里给出的命令一会有大写的一会有小写的,不如全弄成小写的。经验证完全可行。

综合来看我更喜欢第一种改密码的方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值