MySql(sql文+jdbc)
6714 ワード
一、基礎sql文ライブラリ作成 既存のデータベースを問い合わせる 指定データベース に切り替える.現在動作中のデータベースを表示する テーブル を作成データベースに既に存在するテーブル が一覧表示されます.データベースを作成する文 が表示されます.テーブルを作成する文 が表示されます.表構造 を参照データベース を削除する.削除テーブル この時点でテーブルのすべてのレコードを削除したい場合は、 を使用します.修正表 修正表名 外部キー 二、マルチテーブルクエリー
相互接続クエリーはほとんど使用されず、2つのテーブルの積 が得られる.構文: 内部接続クエリーキーワードinner joinを使用し、innerは を省略することができる.
外部接続クエリーキーワードouter joinを使用し、outerは を省略することができる.
内部ジョインと外部ジョインの違い左外部接続:左テーブルのすべてのデータを問合せ、2つのテーブルの交差 接続:2つのテーブルの交差を問い合わせる 右外部接続:右テーブルのすべてのデータを問合せ、2つのテーブルの交差 サブクエリサブクエリ:1つのselect文の結果を別のselect文の一部とする(クエリ条件、クエリ結果、テーブルなど).
三、JDBC開発手順
登録ドライバ分析ステップ1 分析ステップ2 不足:ハードコーディング、後期のプログラムメンテナンスと拡張が容易ではない 不足:駆動登録2回 分析手順3 Classを使用する場合.forName()はクラスをメモリにロードします.このクラスの静的コードは自動的に実行されます.com.mysql.jdbc.Driverソースコードでは、Driver登録 がアクティブに行われます.一括操作
/* */
CREATE DATABASE IF NOT EXISTS Web_Data CHARACTER SET utf8;
/* */
CREATE DATABASE IF NOT EXISTS Web_Data;
SHOW DATABASES;
USE Web_Data;// Web_Data
SELECT database();
CREATE TABLE IF NOT EXISTS user(id INTEGER PRIMARY KEY
AUTO_INCREMENT,name VARCHAR(20),password VARCHAR(100));
SHOW TABLES;
SHOW CREATE DATABASE
SHOW CREATE TABLE ;
DESC ;
DROP DATABASE ;
DROP TABLE ;//
DELETE FROM ;//
TRUNCATE TABLE ;// , 。auto_increment , 0
TRUNCATE TABLE
またはDELETE FROM
//--- ---
delete , auto_increment
truncate ( ), 。auto_increment 0
//--- ---
delete ,
truncate
ALTER TABLE user MODIFY name VARCHAR(50);// name
ALTER TABLE user ADD sex VARCHAR(20);// sex
ALTER TABLE user DROP text;// text
ALTER TABLE user CHARACTER SET utf8;//
RENAME TABLE TO ;
ALTER TABLE product ADD FOREIGN KEY (category_id) REFERENCES category (cid);
相互接続クエリー
select * from A,B;
select * from A,B where ;
select * from A inner join B on .
外部接続クエリー
:left outer join
select * from A left outer join B on ;
:right outer join
select * from A right outer join B on ;
内部ジョインと外部ジョインの違い
三、JDBC開発手順
登録ドライバ
JDBC :java.sql.Driver,mysql :com.mysql.jdbc.Driver
DriverManager :registerDriver(); :java.sql.Driver, DriverManager.registerDriver(new com.mysql.jdbc.Driver)
package cn.xjw.jdbc_demo.utils;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Logger;
/**
* JDBC
*
* @author xjw
*
* ,
* 1.
* 2.
* 3. sql
* 4.[ sql ]
* 5. sql
* 6. ,
* 7.
*
* Class.forName()
* Class.forName("com.mysql.jdbc.Driver");
* Class.forName() , com.mysql.jdbc.Driver Driver
*
*/
public class JDBCUtils {
private static String user = "";
private static String pswd = "";
private static String url = "";
private static String driver = "";
static{
/**
* :.properties
*
*/
ResourceBundle rb = ResourceBundle.getBundle("cn.xjw.jdbc_demo.utils.MyDB");
user = rb.getString("user");
pswd = rb.getString("password");
url = rb.getString("url");
driver = rb.getString("driver");
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("can not register driver");
}
}
public static Connection getCon() throws SQLException{
return DriverManager.getConnection(url, user, pswd);
}
public static void myRelease(Connection con, ResultSet rs, PreparedStatement ps){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
rs = null;
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
ps = null;
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
con = null;
}
}
public static void main(String[] args){
String name = "tony";
String pswd = "tony123321";
String sql = "select * from user where sname=? and pid=?";
try {
Connection con = JDBCUtils.getCon();
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pswd);
ResultSet rs = ps.executeQuery();
User u = null;
if(rs != null && rs.next()){
u = new User();
u.name = rs.getString("sname");
}
JDBCUtils.myRelease(con, rs,ps);
if(u!=null){
System.out.println(u.name);
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("can not get con");
}
}
private static void method02(List beanList) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web09", "username", "password");
String sql = "inset into user(sname) values(?);";
PreparedStatement ps = con.prepareStatement(sql);
for(User bean:beanList){
ps.setString(1, bean.name);
ps.addBatch();
}
ps.executeBatch();
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}