当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : ubuntu7.10下java连接mysql的过程
帖子发表于 : 2008-02-20 15:54 
头像

注册: 2007-06-30 0:27
帖子: 509
送出感谢: 0 次
接收感谢: 1
以下为本人学习java使用数据库系统mysql的过程,希望对初学java的同学有所帮助,不足请指出!
一. mysql的安装和配置
1.打开新立得软件管理器,以“mysql”关键字搜索,在搜索结果中选择 mysql-client-5.0,mysql-server-5.0,
mysql-admin,mysql-query-browser,点应用安装便完成了。
2.修改字符集:

代码:
sudo gedit /ect/mysql/my.cnf

找到代码
代码:
[client]

和代码
代码:
[mysqld]

分别在其下方加入如下代码后保存,这是为了解决mysql中文乱码问题。
代码:
default-character-set=utf8

3.添加新的数据库和用户
进入数据库
代码:
 mysql -h localhost -u root -p
Enter password:

注意:要求输入的密码为系统管理员密码
建立新数据库

代码:
create database if not exists my_database default charset utf8 COLLATE utf8_general_ci;

my_database为你所要创建的数据库的名称,注意在创建此数据库的时候使用的字符集为utf8,通过“default charset utf8 COLLATE utf8_general_ci”,这样就使得在此数据库下创建的表的编码格式都是utf8,与第二步中的修改一致,在用java连接使用时不会出现中文乱码。
查看新建立的数据库
代码:
 show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_database        |
| mydb               |
| mysql              |
+--------------------+
4 rows in set (0.00 sec)


可以看见建立的数据库已经在其中了,下面将建立一个新的用户并将刚才建立的数据库的管理权限赋予他
代码:
 GRANT ALL PRIVILEGES ON my_database.* TO user@"%" IDENTIFIED BY "654321";
Query OK, 0 rows affected (0.10 sec)

这句命令的翻译:赋予 所有 特权 关于 以my-database为开头的文件 给 用户user 在localhost主机上 确立身份 以 密码654321,当然你可以任意修改user,654321为你喜欢的,只要是合法的标识符就可以了。
然后就可以用新建立的用户登录和管理数据库了
代码:
 mysql -h localhost -u user -p654321 -D my_database

创建表
代码:
create table userdata(id int(3) not null,name varchar(30) not null,sex varchar(1) not null,brithday date );

照此格式向表中插入数据
代码:
insert into userdata value('1','张三','f','1986-08-03');

至此数据库系统的安装配置,数据库的建立,用户的建立,数据表的建立,数据的插入完成。下面是如何用java来连接和使用数据库的过程。


最后由 牙签儿 编辑于 2008-02-20 18:21,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-02-20 15:55 
头像

注册: 2007-06-30 0:27
帖子: 509
送出感谢: 0 次
接收感谢: 1
二.java使用mysql
1.系统的配置
下载connectors/J(须注册)或从附件中下载,将下载好的文件mysql-connector-java-5.1.5.tar.gz解压缩,找出其中的
mysql-connector-java-5.0.8-bin.jar文件,然后打开终端
代码:
sudo cp mysql-connector-java-5.0.8-bin.jar /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/ext

注意其中的java-6-sun-1.6.0.03因个人安装的jdk版本不同而不同,自己选择。
2.程序的编制
下面给出我所编制的一个java程序,可作为参考,尤其注意其中的数据库连接部分的代码,我在此处出错不少


附件:
mysql-connector-java-5.0.8-bin.jar [528.18 KiB]
被下载 1137 次


最后由 牙签儿 编辑于 2008-02-29 20:45,总共编辑了 4 次
页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-02-20 15:56 
头像

注册: 2007-06-30 0:27
帖子: 509
送出感谢: 0 次
接收感谢: 1
代码:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author n
 */
public class DatabaseOperation {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        ResultSet rs;
        boolean s;
        String sql = "select * from userdata";
        DatabaseOperation dbop = new DatabaseOperation();
        dbop.connect();
        rs = dbop.executeSQL(sql);
        try {
            while (rs.next())
            {
                System.out.print("序号:" + rs.getString(1));
                System.out.print("姓名:" + rs.getString(2));
                System.out.print("性别:" + rs.getString(3));
                System.out.println("生日:" + rs.getString(4));
            }
        } catch (Exception e) {
            System.out.println("出错!");
        }
        try
        {
            s=dbop.executeUpdate("insert into userdata value('2','小后','F','1987-12-23');");
            s=dbop.executeUpdate("insert into userdata value('3','小吕','F','1987-12-23');");
            s=dbop.executeUpdate("insert into userdata value('4','小朱','F','1987-12-23');");
            s=dbop.executeUpdate("insert into userdata value('5','小马','F','1987-12-23');");
            rs = dbop.executeSQL(sql);
            while (rs.next())
            {
                System.out.print("序号:" + rs.getString(1));
                System.out.print("姓名:" + rs.getString(2));
                System.out.print("性别:" + rs.getString(3));
                System.out.println("生日:" + rs.getString(4));
            }
        }
        catch(Exception e)
        {
        }
        try
        {
            dbop.disConnection();
        }
        catch(Exception e)
        {
        }

    }
    //构造函数
    public DatabaseOperation(String dataBase, String userName, String password) {
        this.dataBase = dataBase;
        this.userName = userName;
        this.password = password;
    }
    //构造函数
    public DatabaseOperation() {
        this.host = "localhost";
        this.dataBase = "my_database";
        this.userName = "user";
        this.password = "654321";
        this.dbDriver = "com.mysql.jdbc.Driver";
        this.url = "jdbc:mysql://localhost/mydb";
        this.statement = null;
        this.resultSet = null;
        this.connection = null;

    }
    //连接数据库
    public Connection connect() {
        try {
            Class.forName(this.dbDriver).newInstance();
            connection = DriverManager.getConnection("jdbc:mysql://"+this.host+":3306/"+this.dataBase+"?user="+
                                                      this.userName+"&password="+this.password+
                                                      "&useUnicode=true&characterEncoding=UTF-8");
        } catch (Exception e) {
            System.out.println("连接出错!");
        }

        return (this.connection);
    }
    //关闭连接
    public boolean disConnection() {
        try
        {
            this.connection.close();
            this.statement.close();
        }
       catch (SQLException e)
        {
            System.out.println("关闭连接失败!");
            return (false);
        }

        return (true);
    }
    //获得statement
    public Statement getStatement() {
        try {
            this.statement = this.connect().createStatement();
        } catch (SQLException e) {
            System.out.println("statement产生失败!");
            return (null);
        }
        return (this.statement);
    }

    //执行查询语句
    public ResultSet executeSQL(String sql) {
        try {
            this.resultSet = this.getStatement().executeQuery(sql);
        } catch (SQLException e) {
            System.out.println("执行出错!");
            return (null);
        }

        return (this.resultSet);
    }
    //执行更新语句
    public boolean executeUpdate(String sql) {
        int state;
        try {
            this.statement.executeUpdate(sql);
        } catch (SQLException e) {
            System.out.println("更新出错!");
            return (false);
        }
        return (true);
    }
    private String userName;//用户名
    private String password;//用户密码
    private String dbDriver;//驱动
    private String url;//数据库位置
    private String dataBase;//数据库名称
    private String host;//主机
    private ResultSet resultSet;//查询产生的结果集
    private Statement statement;//
    private Connection connection;//产生的数据库连接
}

[/code]


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-02-22 13:54 
头像

注册: 2007-05-19 23:18
帖子: 314
地址: 广东珠海
送出感谢: 0 次
接收感谢: 0 次
沙发。。。。。。二楼是我的了!

代码:
到如下网站下载connectors/J(须注册),将下载好的文件mysql-connector-java-5.1.5.tar.gz解压缩,找出其中的
mysql-connector-java-5.0.8-bin.jar文件,然后打开终端
驱动的网址没有给出来啊老大????


_________________
凡事都可行.但不都有益处。凡事都可行.但不都造就人。(哥林多前10:23)

my blog : http://gdzhljw.blog.163.com/
http://gdzhljw.blog.ubuntu.org.cn/


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-02-22 15:43 
头像

注册: 2007-05-19 23:18
帖子: 314
地址: 广东珠海
送出感谢: 0 次
接收感谢: 0 次
找到以下了:第一个不行(可能要注册所以不行)就第二个注册一下就可以了

http://dev.mysql.com/get/Downloads/Conn ... ase/Mysql/

http://dev.mysql.com/downloads/connector/j/5.0.html


_________________
凡事都可行.但不都有益处。凡事都可行.但不都造就人。(哥林多前10:23)

my blog : http://gdzhljw.blog.163.com/
http://gdzhljw.blog.ubuntu.org.cn/


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-02-22 15:49 
头像

注册: 2008-01-02 17:26
帖子: 199
送出感谢: 0 次
接收感谢: 0 次
不用那么麻烦,源里就有mysql的jdbc驱动
sudo apt-get install libmysql-java


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-03-28 16:07 
头像

注册: 2007-05-28 11:17
帖子: 105
送出感谢: 0 次
接收感谢: 0 次
既然已经指定了[mysqld]的default-character_set是utf8了
那么创建UTF8数据库的时候,不必再指定字符集了
还有mysql的默认字符集都是latin1
那么当你需要用MySQL自带的CLI Client插入非西文字符的时候,需要将
character_set_client指定为系统内码,
character_set_connection指定为能包含你输入的所有字符的字符集
MySQL AB的JDBC驱动,默认是以utf8的character_set_client
连接Mysql的,所以在程序里获得数据库连接的时候不必指定字符集了
如果需要在MySQL CLI Client中,检索非西文字符数据,还需要将
character_set_results指定为系统内码。
简单的做法是在选项文件中将[client]的
default-character_set指定为系统内码,比如Ubuntu的utf8


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-03-31 13:48 
头像

注册: 2006-09-04 10:45
帖子: 765
送出感谢: 0 次
接收感谢: 0 次
如果连jdbc驱动都要喊着要靠别人给出下载地址的话,连起码的一点linux精神都没有……

唉……


页首
 用户资料  
 
9 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2009-09-19 16:16 
头像

注册: 2008-12-22 22:48
帖子: 217
送出感谢: 0 次
接收感谢: 0 次
正找着这东西来


_________________
不要小人得志


页首
 用户资料  
 
10 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2009-09-25 22:47 

注册: 2009-08-20 15:48
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
怎么不用hibernate 我用着挺好阿,用ant可以自己处理表生成对象


页首
 用户资料  
 
11 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2009-09-27 21:12 

注册: 2008-05-12 18:48
帖子: 65
送出感谢: 0 次
接收感谢: 0 次
低级错误

代码:
sudo gedit /etc/mysql/my.cnf

不是
代码:
sudo gedit /ect/mysql/my.cnf


页首
 用户资料  
 
12 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2009-10-05 19:45 
头像

注册: 2008-02-24 14:15
帖子: 693
地址: 江苏
系统: Ubuntu
送出感谢: 17
接收感谢: 0 次
wzs993636 写道:
低级错误

代码:
sudo gedit /etc/mysql/my.cnf

不是
代码:
sudo gedit /ect/mysql/my.cnf

是的.
打错了应该


_________________

怀念以前的老台式机。可惜现在租的地方没条件用了。目前只能用笔记本和手机了。


页首
 用户资料  
 
13 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2009-10-10 1:50 

注册: 2009-08-07 20:38
帖子: 8
送出感谢: 0 次
接收感谢: 0 次
很感谢啊。很详细


页首
 用户资料  
 
14 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2009-10-21 21:25 

注册: 2009-10-19 17:38
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
有帮助 谢谢 :em11


页首
 用户资料  
 
15 楼 
 文章标题 : Re: ubuntu7.10下java连接mysql的过程
帖子发表于 : 2010-03-03 17:23 

注册: 2010-01-07 19:13
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
:em11 好贴


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译