java如何连接mysql

java如何连接mysql,第1张

首先需要下载mysql数据库驱动程序,去mysql官网下载,文件名为mysql-connector-java-5111-binjar,其中5111是版本,可下载最新的。要把这个jar加到工程中。

java代码:

import javasql;

public class TestInsert {

public static void main(String[] args) {

try {

ClassforName("commysqljdbcDriver");//加载MySQL驱动程序

//建立与数据库的连接

String url = "jdbc:mysql://localhost:3306/training"; //training是数据库名,可替换

String user = "root"; //root是mysql用户名,可替换

String password = "root"; //替换为你的password

Connection cn = DriverManagergetConnection(url,user,password);

Statement stmt = cncreateStatement();//创建Statement对象

} catch (Exception e) {

eprintStackTrace();

}

}

}

linux ubuntu下用C连MySQL接数据mysql数据库的步骤如下:

1安装mysql-server,在Ubuntu1004下安装mysql-server-51,会自动安装mysql-client_51

sudo apt-get install mysql-server-51

2C APIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

假定已安装成功,相关文件如下:

头文件在/usr/include/mysql目录下;

库文件在/usr/lib/mysql和/usr/lib目录下

3启动和关闭mysql

启动mysql:sudo start mysql

关闭mysql:sudo stop mysql

使用ps aux |grep mysql 查看mysql启动状态

ps命令用于查看当前系统中运行的进程信息,命令格式:ps [选项]

常见参数:

-a 显示系统中所有进程,包括其他用户进程

-e 显示所有进程信息

-f 显示进程的所有信息

-l 显示长格式显示进程的信息

-r 只显示正在运行的程序

-u 以用户的格式显示进程信息

-x 显示所有终端上的进程信息

最常用的方法是ps aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行 *** 作。例如前面使用的ps aux |grep mysql

4链接库时需要库文件,有静态库文件,也有动态库文件,也有名字相同的静态库文件和动态库文件,如何区分:

o,a,so,lo,la后缀文件含义

o: 编译的目标文件

a: 静态库,其实就是把若干o文件打了个包

so: 动态链接库(共享库)

lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息

la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息

la只有在用libtool编译应用程序或库时才用,即开发者只指明la文件,至于最终链接a还是so由libtool决定,不使用libtool的小程序用不上la。

5连接MySql

a、连接到本机上的MYSQL:

首先打开终端窗口,再键入命令mysql -u root -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入

到MYSQL中了,MYSQL的提示符是:mysql>

b修改密码,格式:mysqladmin -u用户名 -p旧密码 password 新密码

例1:给root加个密码ab12。首先打开终端窗口,然后键入以下命令:mysqladmin -uroot password ab12(注:因为开始时root没有密码,所以-p旧密码一项就可以省略了)。

例2:再将root的密码改为djg345。 mysqladmin -uroot -pab12 password djg345 (注:u与root可以不用加空格,其它也一样)。

c、退出MYSQL命令: exit

6增加新用户(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

格式:grant select on 数据库 to 用户名@登录主机 identified by "密码"

例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

首先用以root用户连入MYSQL,然后键入以下命令:grant select,insert,update,delete privileges on to "test1"@"%" Identified by "abc" with grant option; 但例1增加的用户是十分危险的,

你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的 *** 作(localhost指本地主机,即MYSQL数据库所在的那台主机),

这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb to test2@localhost identified by “abc”;如果你不想test2有密码,可再打一个命令将密码消掉。

grant select,insert,update,delete on mydb to test2@localhost identified by “”;

例3、远程登录:

a、默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉:

vi /etc/mysql/mycnf

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure

#bind-address = 127001 <---注释掉这一行就可以远程登录了

b、允许远程登录后,还应设置远程登录权限:

mysql>grant all privileges on to "root"@"%" identified by "123456" with grant option;

c、使修改生效:

mysql> flush privileges;

d、在另一台机器上远程登录(mysql所在机器地址:192168030):

mysql -h192168030 -uroot -p123456

e、如果仍不能登录,就把远程mysql关闭,之后重启

sudo stop mysql

sudo start mysql

7显示命令:(注:下面来看看MYSQL中有关数据库方面的 *** 作。注意:必须首先登录到MYSQL中,以下 *** 作都是在MYSQL的提示符下进行的,而且每个命令以分号结束)。

a、显示数据库列表:show databases; 刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行 *** 作。

b、显示库中的数据表:use mysql; show tables;

c、显示数据表的结构:describe 表名;

d、建库: create database 库名;

e、建表: use 库名; create table 表名 (字段设定列表);

f、删库和删表: drop database 库名; drop table 表名;

g、将表中记录清空:delete from 表名;

h、显示表中的记录:select from 表名;

创建一个以JDBC连接数据库的程序,包含7个步骤: \x0d\ 1、加载JDBC驱动程序: \x0d\ 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), \x0d\ 这通过javalangClass类的静态方法forName(String className)实现。 \x0d\ 例如: \x0d\ try{ \x0d\ //加载MySql的驱动类 \x0d\ ClassforName("commysqljdbcDriver") ; \x0d\ }catch(ClassNotFoundException e){ \x0d\ Systemoutprintln("找不到驱动程序类 ,加载驱动失败!"); \x0d\ eprintStackTrace() ; \x0d\ } \x0d\ 成功加载后,会将Driver类的实例注册到DriverManager类中。 \x0d\ 2、提供JDBC连接的URL \x0d\ •连接URL定义了连接数据库时的协议、子协议、数据源标识。 \x0d\ •书写形式:协议:子协议:数据源标识 \x0d\ 协议:在JDBC中总是以jdbc开始 \x0d\ 子协议:是桥连接的驱动程序或是数据库管理系统名称。 \x0d\ 数据源标识:标记找到数据库来源的地址与连接端口。 \x0d\ 例如:(MySql的连接URL) \x0d\ jdbc:mysql: \x0d\ //localhost:3306/testuseUnicode=true&characterEncoding=gbk ; \x0d\ useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 \x0d\ gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 \x0d\ 3、创建数据库的连接 \x0d\ •要连接数据库,需要向javasqlDriverManager请求并获得Connection对象, \x0d\ 该对象就代表一个数据库的连接。 \x0d\ •使用DriverManager的getConnectin(String url , String username , \x0d\ String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 \x0d\ 密码来获得。 \x0d\ 例如: \x0d\ //连接MySql数据库,用户名和密码都是root \x0d\ String url = "jdbc:mysql://localhost:3306/test" ; \x0d\ String username = "root" ; \x0d\ String password = "root" ; \x0d\ try{ \x0d\ Connection con = \x0d\ DriverManagergetConnection(url , username , password ) ; \x0d\ }catch(SQLException se){ \x0d\ Systemoutprintln("数据库连接失败!"); \x0d\ seprintStackTrace() ; \x0d\ } \x0d\ 4、创建一个Statement \x0d\ •要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3 \x0d\ 种类型: \x0d\ 1、执行静态SQL语句。通常通过Statement实例实现。 \x0d\ 2、执行动态SQL语句。通常通过PreparedStatement实例实现。 \x0d\ 3、执行数据库存储过程。通常通过CallableStatement实例实现。 \x0d\ 具体的实现方式: \x0d\ Statement stmt = concreateStatement() ; \x0d\ PreparedStatement pstmt = conprepareStatement(sql) ; \x0d\ CallableStatement cstmt = \x0d\ conprepareCall("{CALL demoSp( , )}") ; \x0d\ 5、执行SQL语句 \x0d\ Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate \x0d\ 和execute \x0d\ 1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 \x0d\ ,返回一个结果集(ResultSet)对象。 \x0d\ 2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 \x0d\ DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 \x0d\ 3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 \x0d\ 语句。 \x0d\ 具体实现的代码: \x0d\ ResultSet rs = stmtexecuteQuery("SELECT FROM ") ; \x0d\ int rows = stmtexecuteUpdate("INSERT INTO ") ; \x0d\ boolean flag = stmtexecute(String sql) ; \x0d\ 6、处理结果 \x0d\ 两种情况: \x0d\ 1、执行更新返回的是本次 *** 作影响到的记录数。 \x0d\ 2、执行查询返回的结果是一个ResultSet对象。 \x0d\ • ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 \x0d\ 行中数据的访问。 \x0d\ • 使用结果集(ResultSet)对象的访问方法获取数据: \x0d\ while(rsnext()){ \x0d\ String name = rsgetString("name") ; \x0d\ String pass = rsgetString(1) ; // 此方法比较高效 \x0d\ } \x0d\ (列是从左到右编号的,并且从列1开始) \x0d\ 7、关闭JDBC对象 \x0d\ *** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 \x0d\ 明顺序相反: \x0d\ 1、关闭记录集 \x0d\ 2、关闭声明 \x0d\ 3、关闭连接对象 \x0d\ if(rs != null){ // 关闭记录集 \x0d\ try{ \x0d\ rsclose() ; \x0d\ }catch(SQLException e){ \x0d\ eprintStackTrace() ; \x0d\ } \x0d\ } \x0d\ if(stmt != null){ // 关闭声明 \x0d\ try{ \x0d\ stmtclose() ; \x0d\ }catch(SQLException e){ \x0d\ eprintStackTrace() ; \x0d\ } \x0d\ } \x0d\ if(conn != null){ // 关闭连接对象 \x0d\ try{ \x0d\ connclose() ; \x0d\ }catch(SQLException e){ \x0d\ eprintStackTrace() ; \x0d\ } \x0d\ }

一、使用工具:java语言、Myeclipse。

二、 *** 作步骤:

1、第一步:加载MySQL的JDBC的驱动

2、第二步:创建与MySQL数据库的连接类的实例

3、第三步:获取连接类实例con,用con创建Statement对象类实例 sql_statement

4、第四步:执行查询,用ResultSet类的对象,返回查询的结果

5、得出数据

三、注意事项:有几处是需要根据自身情况修改的

1、如下图中的url和账号,密码需要与你自己的相一致。

2、这些需要访问的数据必须要与数据库中的类型相互匹配,才能打印出正确的结果。

下面是一个从 mysql 数据库获取用户信息的例子,可以参考一下:

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javasqlStatement;

import javautilArrayList;

import javautilList;

 

// 用户类,存储单个用户信息

class User {

     

    private int id;

     

    private String name;

 

    public User(int id, String name) {

        thisid = id;

        thisname = name;

    }

 

    public int getId() {

        return id;

    }

     

    public void setId(int id) {

        thisid = id;

    }

     

    public String getName() {

        return name;

    }

     

    public void setName(String name) {

        thisname = name;

    }

 

    @Override

    public String toString() {

        return "User [id=" + id + ", name=" + name + "]";

    }

}

 

public class Demo1 {

 

    public static void main(String[] args) throws ClassNotFoundException, SQLException {

         

        // 本例使用 mysql 数据库,演示将数据库 test 的 tb_users 表中的用户信息

        // 放到 List 中

         

        // 加载数据驱动

        ClassforName("commysqljdbcDriver");

         

        // 数据库连接字符串, 此例数据库为 test

        String url = "jdbc:mysql://localhost:3306/test";

        String user = "root";    // 数据库用户名

        String password = "";    // 数据库密码

         

        // 打开一个数据连接

        Connection conn = DriverManagergetConnection(url, user, password);

         

        Statement stmt = conncreateStatement();

         

        // 获取表 tb_users 所有用户信息到结果集中

        ResultSet rs = stmtexecuteQuery("SELECT id, name FROM tb_users");

         

        // 定义一个存放用户信息的 List

        List<User> users = new ArrayList<>();

         

        // 提取用户信息,并将用户信息放入 List

        while (rsnext()) {

             

            // 获取用户ID

            int id = rsgetInt(1);

             

            // 获取用户名

            String name = rsgetString(2);

             

            usersadd(new User(id, name));

        }

 

        rsclose();

        stmtclose();

        connclose();

         

        // 显示用户信息

         

        for (User u : users) {

            Systemoutprintln(u);

        }

    }

}

以上就是关于java如何连接mysql全部的内容,包括:java如何连接mysql、Ubuntu下Java程序如何连接MySQL数据库、java中使用JDBC完成数据库 *** 作的基本步骤是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9464672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存