Java连接MySQL需要jdbc驱动,文件为mysql-connector-java-x.x.xx.jar和mysql-connector-java-x.x.xx-bin.jar
建议用phpmyadmin来管理数据库,在写Java操作数据库的代码之前先到phpmyadmin上面操作一下,不会的MySQL指令也可以根据提示在phpmyadmin上得到答案。
下面是Java部分的代码
package application;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConfigMySQL {
static final String DB_URL = "jdbc:mysql://localhost:3306/resemblance"; //路径的最后一部分resemblance是数据库名,注意按需更改
static final String USER = "root"; //数据库登陆账号
static final String PASS = "12345678c"; //数据库登陆密码
public static boolean login(String user, String psd) throws SQLException {
Connection conn = null;
Statement stmt = null;
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
stmt = conn.createStatement();
String sql;
sql = "SELECT * FROM `user` WHERE username='" + user + "'and password='" + psd + "'";
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()) { //对于登陆来说rs.next()为真的话代表账号密码匹配,不用做处理直接返回真就可以
rs.close();
stmt.close();
conn.close();
return true;
}
else {
rs.close();
stmt.close();
conn.close();
return false;
}
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
return false;
}
public static void creatTable(String user, int cols, double[][] res) throws ClassNotFoundException {
Connection conn = null;
Statement stmt = null;
String create = "CREATE TABLE `resemblance`.`" + user + "` ( `CODE` VARCHAR(10) NOT NULL , "; //创建表要确定列头的信息,不能创建空表
for(int i = 1; i <= cols; i++) {
create = create + "`Gl-" + i + "` DOUBLE NOT NULL ";
if(i != cols) {
create = create + ", ";
}
else {
create = create + ") ENGINE = InnoDB;";
}
}
Class.forName("com.mysql.jdbc.Driver");
System.out.println("连接数据库...");
try {
conn = DriverManager.getConnection(DB_URL,USER,PASS);
stmt = conn.createStatement();
stmt.executeLargeUpdate("DROP TABLE IF EXISTS " + user);
stmt = conn.createStatement();
if(0 == stmt.executeLargeUpdate(create)){
System.out.println("成功创建表!");
String insert = "INSERT INTO `" + user + "` (`CODE`, "; //对数据表进行写入
for(int j = 1; j <= cols; j++) {
insert = insert + "`Gl-" + j + "`";
if(j != cols) {
insert = insert + ", ";
}
else {
insert = insert + ") VALUES ";
}
}
for(int i = 1; i <= cols; i++) {
if(i != 1) {
insert = insert + ", ";
}
insert = insert + "('Gl-" + i + "', ";
for(int j = 1; j <= cols; j++) {
insert = insert + "'" + res[j - 1][i - 1] + "'";
if(j != cols) {
insert = insert + ", ";
}
else {
insert = insert + ")";
}
}
}
stmt = conn.createStatement();
stmt.executeLargeUpdate(insert);
}
else{
System.out.println("创建表失败!");
}
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}