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
~~~