MySQL的使用
MySQL服務需要啟動
Oracle - 數據庫(orcl) - 用戶(scott, hr, sys) -> table, view sequence, index
MySQL - 用戶root - 數據庫(mysql, test) ->table, view .....
在Oracle里,一個用戶對應一個應用系統
在MySQL, 一個數據庫對應一個應用系統
創建表:
數據類型: 數字型: int,bigint
變長字符串: varchar
定長字符串:char
小數型: float, double
日期型: date(年月日)
datatime(年月日時分秒)
自動遞增主鍵
SQL語句
插入:
~~~
insert into userinfo values (null, 'zz', 'M', 88.88, now(),now())
insert into userinfo values (null, 'zz', 'M', 88.88, sysdate(),sysdate())
insert into userinfo values (null, 'zz', 'M', 88.88, '2017-1-1', '2017-1-1 1:1:1')
~~~
查詢:
分頁查詢(每3條一頁,分別取第一頁,第二頁, 第三頁):
~~~
select * from userinfo limit 0, 3
select * from userinfo limit 3, 3
select * from userinfo limit 6, 3
~~~
刪除和更新跟Oracle無區別
MySQL JDBC
//驅動程序名
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/sqltestdb";
~~~
public static void main(String[] args) {
//1. 加載驅動類
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//2. 創建一個連接conn
Connection conn = null;
PreparedStatement statement = null;
try {
conn = DriverManager.
getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root");
System.out.println(conn);
//3. 創建preparedstatement, 編寫sql語句
statement = conn.prepareStatement("insert into userinfo values(null,?,?,?,?,?)");
//替換?
statement.setString(1, "xiaomei");
statement.setString(2, "F");
statement.setFloat(3, 5555.55f);
//statement.setDate(4, Date.valueOf("2017-1-1")); //某一特定時間
statement.setDate(4, new Date(System.currentTimeMillis()));//當前系統時間
//statement.setTimestamp(5, Timestamp.valueOf("2017-1-1 11:11:11"));
statement.setTimestamp(5, new Timestamp(System.currentTimeMillis()));
//4. 執行SQL語句
statement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
//5. 關閉資源(result, preparedstatement, conn)
}
~~~
JDBC亂碼問題的解決方案:
1. 保證數據庫支持中文
2. JDBC連接中加上?useUnicode=true&characterEncoding=utf8
~~~
jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8
~~~