您的位置:首页 > 数据库 > MySQL

jdbc 连接 mysql

2016-03-07 21:21 573 查看

jdbc 连接 mysql

一、安装

ubuntu(linux)下安装mysql

$ sudo apt-get update

$ sudo apt-get install mysql-server mysql-client

安装完成后会让你设置一下root用户的密码,这里的root用户是mysql的root用户,和系统的root用户不同。

登录mysql

mysql -uroot -p

二、设置远程连接

主要设置两个点,

1. mysql的监听端口(3306)是不是阻止的,主要看防火墙。

ubuntu防火墙设置 可以参考 http://blog.csdn.net/u012480384/article/details/50822304
windows条件下,自行百度一下,应该有很多。

2. mysql内部设置远程连接,并授权。

vim /etc/my.cnf

注释这一行:bind-address=127.0.0.1 ==> #bind-address=127.0.0.1

保存退出。

对应的window版本的 mysql 目录下 my.cnf 文件

设置mysql:

#登录mysql

mysql -uroot -p

#切换到 'mysql'数据库,修改远程连接的基本信息,保存在mysql数据库中,因此使用mysql数据库。

mysql> use mysql;

# *.* 用来设置 数据库和表名

# To 'root'@'%' 用来设置得到授权的用户和所在的ip。

# By 'root' 表示得到授权用户的登录密码

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

# 刷新授权,使之生效

mysql> flush privileges;

# 检验

mysql> select host,user from user;

三、 java 代码

首选需要引入mysql jdbc的jar包

Java连接MySQL的最新驱动包下载地址
http://www.mysql.com/downloads/connector/j
java代码

package com.test.mysql;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.DatabaseMetaData;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

//MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建javademo数据库

public class MysqlHelper {

// public static final String url = "jdbc:mysql://127.0.0.1:3306/student";
public static final String MYSQL_JDBC = "jdbc:mysql://192.168.1.164:3306/student";
public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
public static final String MYSQL_USER = "root";
public static final String MYSQL_PASSWORD = "root";

public static final String MYSQL_URL = MYSQL_JDBC + "?user=root&password=root&useUnicode=true&characterEncoding=UTF8";

public static final String TABLE_NAME = "student";
public static final String TABLE_COLUMN = TABLE_NAME + "(name)";

private Connection conn = null;
// private PreparedStatement pst = null;

public MysqlHelper() {
try {
Class.forName(MYSQL_DRIVER);// 指定连接类型
System.out.println("成功加载MySQL驱动程序");

conn = (Connection) DriverManager.getConnection(MYSQL_URL);// 获取连接

conn.setCharacterEncoding("utf8");
conn.setUseCompression(true);
if (conn.getUseCompression()) {
System.out.println("compress");
} else {
System.out.println("UnCompress");
}
// pst = conn.prepareStatement(sql);// 准备执行语句
} catch (Exception e) {
e.printStackTrace();
}
}

private void execute(String sql) {
if (null == sql || 0 == sql.length()) {
System.out.println("argu wrong");
return;
}

System.out.println(sql);
Statement stmt;
try {
stmt = conn.createStatement();
int result = stmt.executeUpdate(sql);
if (-1 == result) {
System.out.println("execute failure " + result);
} else {
System.out.println("execute successed " + result);
}
} catch (SQLException e) {
e.printStackTrace();
}
}

private void executeQuery(String sql) {
if (null == sql || 0 == sql.length()) {
System.out.println("argu wrong");
return;
}

ResultSet rs = null;
System.out.println(sql);
Statement stmt;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
System.out.println("\n############");
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name"));
}
System.out.println("############\n");
} catch (SQLException e) {
e.printStackTrace();
}
}

public void insert(String name) {
if (null == name || 0 == name.length())
name = "default";
String sql = "insert into " + TABLE_COLUMN + " values('" + name + "')";
execute(sql);
}

public void insert(List<String> list) {
if (null == list || 0 == list.size())
return;
StringBuilder names = new StringBuilder();
int i = 0;
for (i = 0; i < list.size() - 1; ++i) {
names.append("('" + list.get(i) + "'), ");
}
names.append("('" + list.get(i) + "')");
String sql = "insert into " + TABLE_COLUMN + " values" + names.toString();
execute(sql);
}

public void delete(int id) {
String sql = "delete from " + TABLE_NAME + " where id = " + id;
execute(sql);
}

public void delete(String name) {
if (null == name || 0 == name.length())
name = "default";
String sql = "delete from " + TABLE_NAME + " where name = '" + name + "'";
execute(sql);
}

public void deleteAll() {
String sql = "delete from " + TABLE_NAME;
execute(sql);
}

public void update(int id, String name) {
if (null == name || 0 == name.length())
name = "default";
String sql = "update student set name='" + name + "' where id = " + id;
execute(sql);
}

public void select(int id) {
String sql = "select * from " + TABLE_NAME + " where id = " + id;
executeQuery(sql);
}

public void selectAll() {
String sql = "select * from " + TABLE_NAME;
executeQuery(sql);
}

public void createTable() {
createTable(TABLE_NAME);
}

public void createTable(String tableName) {
if (null == tableName || 0 == tableName.length())
tableName = TABLE_NAME;
if (!hasTable(tableName)) {
String sql = "create table " + tableName
+ " (id int(4) not null primary key auto_increment,name varchar(20) not null)engine=innodb default charset=utf8";
execute(sql);
}
}

public boolean hasTable(String tableName) {
if (null == tableName || 0 == tableName.length())
tableName = TABLE_NAME;
DatabaseMetaData meta = null;
ResultSet result = null;
try {
meta = (DatabaseMetaData) conn.getMetaData();
result = meta.getTables(null, null, tableName, null);
if (result.next())
return true;
return false;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}

public void dropTable(String tableName) {
if (null == tableName || 0 == tableName.length())
tableName = TABLE_NAME;
if (hasTable(tableName)) {
String sql = "drop table " + tableName;
execute(sql);
}
}

public void dropTable() {
dropTable(TABLE_NAME);
}

public void commit() {
String sql = "commit";
execute(sql);
}

public void close() {
try {
this.conn.close();
// this.pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}


测试代码:

package com.test.mysql;

import java.util.Arrays;

public class MysqlDemo {

public static String[] names = {"apple", "bob", "carry", "david"};

public static void main(String[] args) throws Exception {
// connect();
// create();
// drop();
// insert();
// update();
// delete();
// select();
allTest();
System.out.println("###########");
}

public static void connect() {
MysqlHelper mysql = new MysqlHelper();
mysql.close();
}

public static void create() {
MysqlHelper mysql = new MysqlHelper();
mysql.createTable();
mysql.close();
}

public static void drop() {
MysqlHelper mysql = new MysqlHelper();
mysql.dropTable();
mysql.close();
}

public static void insert() {
MysqlHelper mysql = new MysqlHelper();
mysql.insert(Arrays.asList(names));
mysql.close();
}

public static void update() {
MysqlHelper mysql = new MysqlHelper();
mysql.update(1, "xoxo");
mysql.close();
}

public static void delete() {
MysqlHelper mysql = new MysqlHelper();
mysql.delete("apple");
mysql.close();
}

public static void select() {
MysqlHelper mysql = new MysqlHelper();
mysql.selectAll();
mysql.close();
}

public static void allTest() {
MysqlHelper mysql = new MysqlHelper();
if (mysql.hasTable(MysqlHelper.TABLE_NAME)) {
mysql.dropTable();
}
mysql.createTable();
mysql.insert(Arrays.asList(names));
mysql.selectAll();
mysql.update(1, "xoxo");
mysql.selectAll();
mysql.delete(1);
mysql.selectAll();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mysql.commit();
mysql.dropTable();
mysql.close();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: