安装后修改密码为:123456,用户名为:root。连接数据库代码:import java.sql.*;
public class ConnectionProvider{
private String JDBC_DRIVER;
private String DB_URL;
private String DB_USER;
private String DB_PASSWORD; public ConnectionProvider() {
JDBC_DRIVER=PropertyReader.get("JDBC_DRIVER");
DB_URL=PropertyReader.get("DB_URL");
DB_USER=PropertyReader.get("DB_USER");
DB_PASSWORD=PropertyReader.get("DB_PASSWORD");
try{
Class jdbcDriver=Class.forName(JDBC_DRIVER);
java.sql.DriverManager.registerDriver((Driver)jdbcDriver.newInstance());
}catch(Exception e){e.printStackTrace();}
} public Connection getConnection()throws SQLException{
Connection con=java.sql.DriverManager.getConnection(DB_URL,DB_USER,DB_PASSWORD);
return con;
}
}
import java.util.*;
import java.io.*;public class PropertyReader {
static private Properties ps; static{
ps=new Properties();
try{
InputStream in=PropertyReader.class.getResourceAsStream("db.txt");
ps.load(in);
in.close();
}catch(Exception e){e.printStackTrace();}
} public static String get(String key){
return (String)ps.get(key);
}
}db.txt 文件如下:
JDBC_DRIVER = com.mysql.jdbc.Driver
DB_URL = jdbc:mysql://localhost:3306/STOREDB?useUnicode=true&characterEncoding=GB2312
DB_USER = root
DB_PASSWORD =123456 Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at sql.ConnectionProvider.getConnection(ConnectionProvider.java:22)
at sql.DBTester2.addCustomer(DBTester2.java:13)
at sql.DBTester2.main(DBTester2.java:87)
public class ConnectionProvider{
private String JDBC_DRIVER;
private String DB_URL;
private String DB_USER;
private String DB_PASSWORD; public ConnectionProvider() {
JDBC_DRIVER=PropertyReader.get("JDBC_DRIVER");
DB_URL=PropertyReader.get("DB_URL");
DB_USER=PropertyReader.get("DB_USER");
DB_PASSWORD=PropertyReader.get("DB_PASSWORD");
try{
Class jdbcDriver=Class.forName(JDBC_DRIVER);
java.sql.DriverManager.registerDriver((Driver)jdbcDriver.newInstance());
}catch(Exception e){e.printStackTrace();}
} public Connection getConnection()throws SQLException{
Connection con=java.sql.DriverManager.getConnection(DB_URL,DB_USER,DB_PASSWORD);
return con;
}
}
import java.util.*;
import java.io.*;public class PropertyReader {
static private Properties ps; static{
ps=new Properties();
try{
InputStream in=PropertyReader.class.getResourceAsStream("db.txt");
ps.load(in);
in.close();
}catch(Exception e){e.printStackTrace();}
} public static String get(String key){
return (String)ps.get(key);
}
}db.txt 文件如下:
JDBC_DRIVER = com.mysql.jdbc.Driver
DB_URL = jdbc:mysql://localhost:3306/STOREDB?useUnicode=true&characterEncoding=GB2312
DB_USER = root
DB_PASSWORD =123456 Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at sql.ConnectionProvider.getConnection(ConnectionProvider.java:22)
at sql.DBTester2.addCustomer(DBTester2.java:13)
at sql.DBTester2.main(DBTester2.java:87)
刚刚是密码后面多了个空格
我执行下面代码,报如下错误,请指点。Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xD0\xA1\xCD\xF5' for column 'NAME' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1316)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1235)
at sql.DBTester1.main(DBTester1.java:23)
import java.sql.*;
public class DBTester1{
public static void main(String args[])throws Exception{
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动器,下面的代码为加载MySQL驱动器
Class.forName("com.mysql.jdbc.Driver");
//注册MySQL驱动器
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//连接到数据库的URL
String dbUrl = "jdbc:mysql://localhost:3306/STOREDB?useUnicode=true&characterEncoding=GB2312";
String dbUser="root";
String dbPwd="123456";
//建立数据库连接
con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//创建一个Statement对象
stmt = con.createStatement();
//增加新记录
stmt.executeUpdate("insert into CUSTOMERS (NAME,AGE,ADDRESS) "
+"VALUES ('小王',20,'上海')"); //输出查询结果
while (rs.next()){
long id = rs.getLong(1);
String name = rs.getString(2);
int age = rs.getInt(3);
String address = rs.getString(4);
//打印所显示的数据
System.out.println("id="+id+",name="+name+",age="+age+",address="+address);
}
//删除新增加的记录
stmt.executeUpdate("delete from CUSTOMERS where name='小王'"); //释放相关资源
rs.close();
stmt.close();
con.close();
}
}
MySQL 中文显示乱码
谢谢,问题已经解决,方法如下1: 修改my.int文件 default-character-set=gb2312
2:建的表后面加上engine=MyISAM character set gbk collate gbk_chinese_ci;
3:数据库url后面加上?useUnicode=true&characterEncoding=GBK