Linux下Java调用MySql的第一个例子(全过程) 及 MySql改密码的种种误区
2013-03-20 11:01
459 查看
第一步:安装jdk和eclipse,参考前文:/article/1652294.html
第二步:下载mysql-connector-java-5.1.24.tar.gz,地址为:http://www.mysql.com/downloads/connector/j/5.1.html
第三步:解压mysql-connector-java-5.1.24.tar.gz这个文件到/usr/local/java/。事实上这个目录是任意的,只不过为了方便。我把jdk和eclipse都安装到了上面这个目录下。如下所示:
![](http://img.my.csdn.net/uploads/201303/20/1363743948_1709.jpg)
第四步:新建一个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里写程序,源码如下:
事实上我们可以简化程序,真正的有效代码就四行,简化后的代码如下:
另外,每次新建工程都要把那个包在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://blog.csdn.net/sd0902/article/details/8394106,里面的第二种方法也就是我上面说的几个误区,直接用他的命令是会报错的。参照他的说法,在第一次登陆时在终端里输入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是改不了密码的。另,这里给出的命令一会有大写的一会有小写的,不如全弄成小写的。经验证完全可行。
综合来看我更喜欢第一种改密码的方式。
第二步:下载mysql-connector-java-5.1.24.tar.gz,地址为:http://www.mysql.com/downloads/connector/j/5.1.html
第三步:解压mysql-connector-java-5.1.24.tar.gz这个文件到/usr/local/java/。事实上这个目录是任意的,只不过为了方便。我把jdk和eclipse都安装到了上面这个目录下。如下所示:
![](http://img.my.csdn.net/uploads/201303/20/1363743948_1709.jpg)
第四步:新建一个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://blog.csdn.net/sd0902/article/details/8394106,里面的第二种方法也就是我上面说的几个误区,直接用他的命令是会报错的。参照他的说法,在第一次登陆时在终端里输入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是改不了密码的。另,这里给出的命令一会有大写的一会有小写的,不如全弄成小写的。经验证完全可行。
综合来看我更喜欢第一种改密码的方式。
相关文章推荐
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- Java实现mysql存储过程调用
- java调用存储过程之MySQL
- Linux平台使用JNI的例子 Java调用so
- Linux平台Java调用so库-JNI使用例子
- MySQL存储过程例子,包含事务,输出参数,嵌套调用
- java开发第一个JNI示例程序(基于linux操作系统)--java调用native方法
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- java调用mysql存储过程报权限方面错误
- Linux平台使用JNI的例子 Java调用so
- JAVA如何调用mysql写的存储过程
- java mysql 存储过程的调用
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等
- Linux平台Java调用so库-JNI使用例子
- java调用存储过程例子
- mybatis调用mysql存储过程的例子
- 用Java程序调用MySQL的存储过程
- php的入门第一个例子(包括linux的环境安装与包括页面跳转,以及curl命令的调用)
- Java调用Linux命令两种方式的例子