ubuntu环境下的JDBC开发

本文主要介绍在ubuntu的JDBC开发环境以及MySQL数据库的测试验证


1.MySQL Server安装配置

安装MySQL
sudo apt-get install mysql-server

配置。配置MySQL

在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!

默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:
$mysql -u root -p//已经设置root密码的,需要输入登陆密码

进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。
这样的话,就设置好了MySQL中的root用户密码了,

然后就用root用户建立你所需要的数据库。我这里就以testdb为例:
mysql>CREATE DATABASE testdb;

mysql>GRANT ALL PRIVILEGES ON testdb.* TO testdb_root@localhost IDENTIFIED BY "654321";
这样就建立了一个 testdb_roots的用户,它对数据库 testdb有着全部权限。以后就用 testdb_root来对 testdb数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在 testdb数据库中。
如果你想进行远程访问或控制,那么你要做两件事:
其一:
mysql>GRANT ALL PRIVILEGES ON testdb.* TO testdb_root@"%" IDENTIFIED BY "654321";
允许 testdb_root用户可以从任意机器上登入MySQL。
其二:
$sudo gedit /etc/mysql/my.cnf
老的版本中
>skip-networking => # skip-networking
新的版本中
>bind-address=127.0.0.1 => bind-address= 你机器的IP
这样就可以允许其他机器访问MySQL了。


一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:

pprun@pprun-t61:~$ sudo netstat -tapln | grep mysql

本机测试:

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      24614/mysqld


如果服务器不能正常运行,您可以通过下列命令启动它:

  sudo /etc/init.d/mysql restart




Ubuntu安装mysql客户端和管理可视化工具

sudo  apt-get  install  mysql-workbench

1.创建数据库服务器实例
 选择Server Administrator创建服务器实例
 a.选择Remote Host 输入:数据库MySQL服务器IP地址
  b.Hostname:MySQL服务器IP地址 Port:3306
  c.Username:testdb_root
  d.密码

创建数据表
[sql] 
 
use ceshi;  
create table student  
(  
    stuid int primary key auto_increment,  
    stuName varchar(40) not null  
);  

这样就创建了一个studeng表,auto_increment是自增列的意思
插入数据
[sql] 
 
insert into student(stuname) values('zhangsan');  
insert into student value(2,'lisi');  
insert into student value(10,'wangwu');  
insert into student(stuName) value('maliu');  
这样就插入了4条数据,并且测试了自增列插入的方法,
如果语句里不指定插入自增列,则默认是从1开始,自增量是1
也可以指定插入自增列的值,指定插入值之后,再自增插入,则继续自增。4条数据如下

添加删除字段
[sql] 
 
alter table student  add age int ;  
alter table student drop age;  

添加删除唯一约束
[sql] 
 
alter table student add constraint UN_Name unique(stuName);  
alter table student drop index UN_Name;  


JDBC测试程序:

package com.tcl.lib;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
 
 
public class HelloWorld {
    public static void main(String[] args) throws Exception {
        Connection conn = null;
        String sql;
        // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
        // 避免中文乱码要指定useUnicode和characterEncoding
        // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
        // 下面语句之前就要先创建javademo数据库
        String url = "jdbc:mysql://192.168.1.101:3306/testdb?"
                + "user=testdb_root&password=654321&useUnicode=true&characterEncoding=UTF8";
 
        try {
            // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
            // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
            Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
            // or:
            // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
            // or:
            // new com.mysql.jdbc.Driver();
 
            System.out.println("成功加载MySQL驱动程序");
            // 一个Connection代表一个数据库连接
            conn = DriverManager.getConnection(url);
            // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
            Statement stmt = conn.createStatement();
            sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
            int result = 1;//stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
            if (result != -1) {
                System.out.println("创建数据表成功");
                sql = "insert into student(NO,name) values('2012001','weijiangbo')";
                result = stmt.executeUpdate(sql);
                sql = "insert into student(NO,name) values('2012002','weiqirui')";
                result = stmt.executeUpdate(sql);
                sql = "select * from student";
                ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
                System.out.println("学号\t姓名");
                while (rs.next()) {
                    System.out
                            .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()
                }
            }
        } catch (SQLException e) {
            System.out.println("MySQL操作错误");
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            conn.close();
        }
 
    }
 
}


输出:
成功加载MySQL驱动程序
创建数据表成功
学号 姓名
2012001 weijiangbo
2012002 weiqirui












你可能感兴趣的:(数据库)