您的位置:首页 > 数据库 > MySQL

通过JDBC驱动MySQL的简单应用

2010-08-27 10:26 471 查看
1 MySQL的基本命令
1.1连接数据库

Mysql
–u用户名 –p密码
1.2 查看全部的数据库

Show databases;
1.3 创建数据库

CREATE DATABASE
数据库名;
1.4使用数据库

USE
数据库名;
1.5 查看全部的表

SHOW TABLES;
1.6 创建一张表,其中id可以自动增张
CREATE TABLE student(

id INT
AUTO_INCREMENT PRIMARY KEY NOT NULL,

name VARCHAR(50)
NOT NULL,

age INT
NOT NULL,

birthday DATE
NOT NULL,
);
1.7 查看数据表结构
DESC
表名称;
1.8 插入数据
INSERT INTO student(name,age,birthday)VALUES(‘张三’,20,’1990-04-05’);

1.9 导入数据库

SOURCE 数据库名(包括绝对路径);

注:每条SQL语句后都要加“;”

2使用JDBC连接MySQL

2.1启动MySQL

手动启动MySQL的方法是:我的电脑(右键)->管理->服务和应用程序->服务->MySQL(右键)->启动;

停止的方法相同。
2.2 JDBC连接MySQL

首先应该明确MySQL的驱动程序,链接地址,连接用户,连接密码。其中,MySQL的驱动程序需要从网络上单独下载,然后通过添加jar包进行添加;链接地址是由各个数据库生产商单独提供的,所以需要单独记住。

具体操作如下:
//驱动程序

public static final String DBDRIVER="org.gjt.mm.mysql.Driver";

//链接地址, 3306为MySQL的默认端口号

public static final String DBURL="jdbc:mysql://localhost:3306/数据库名";

//连接数据库的用户名,root为默认用户

public static final String DBUSER="root";

//连接数据库的密码

public static final String DBPASS="密码";

public static void main(String []args){

//表示数据库的连接对象

Connection conn=null;

//使用Class类加载驱动程序

Class.forName(DBDRIVER);

//连接数据库

conn= DriverManager.getConnection(DBURL,DBUSER,DBPASS);

/*对数据库的操作*/

//关闭数据库

conn.close();

}


3
完成插入操作

import java.sql.DriverManager;

import java.sql.SQLException;

import com.mysql.jdbc.Connection;

public class JDBCMySQLINSERT {

public static final String DBDRIVER="org.gjt.mm.mysql.Driver";

public static final String DBURL="jdbc:mysql://localhost:3306/数据库名";

public static final String DBUSER="root";

public static final String DBPASS="密码";

public static void main(String []args){

Connection conn=null;//表示数据库的连接对象

java.sql.PreparedStatement pstmt=null;//表示数据库的更新操作

String name="李四";

int age=19;

String date="1991-02-05";

String sql="INSERT INTO student(name,age,birthday)VALUES(?,?,?)";

System.out.println(sql);

//1,使用Class类加载驱动程序

try {

Class.forName(DBDRIVER);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

//2,连接数据库

conn=(Connection)DriverManager.getConnection(DBURL,DBUSER,DBPASS);

//3,PreparedStatement接口需要通过Connection接口进行实例化操作

pstmt=conn.prepareStatement(sql);//使用预处理方式

pstmt.setString(1,name);//第一个?的内容

pstmt.setInt(2, age);//第二个?的内容

pstmt.setDate(3,java.sql.Date.valueOf(date));

//执行SQL语句,更新数据库

pstmt.executeUpdate();

//4,关闭数据库

pstmt.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}


注:1)PreparedStatement是Statement的接口的子接口,采用预处理方式完成。在Statement采用拼凑的SQL语句完成时,一旦出现了单引号之后,SQL语句拼凑出来的就是一个错误的,所以无法执行。在实际的开发中所有的人肯定不会使用Statement进行程序,而是用其子接口PreparedStatement进行开发。

2)pstmt=conn.prepareStatement(sql);之后一定要执行pstmt.executeUpdate();因为pstmt=conn.prepareStatement(sql);只是一个预处理操作,而pstmt.executeUpdate();是执行操作。如果不执pstmt.executeUpdate();就等于是只占座,而没有人去坐,是没有意义的。
3)因为在建student表时,其中id可以自动增张,所以在插入操作时,省略id。
4)注意对Date的操作,也可以是,赋值时写为:

try
{

java.util.Date date=
new
SimpleDateFormat("yyyy-mm-dd").parse("1980-02-15");

}
catch (ParseException e) {

e.printStackTrace();
}
处理时写为:
pstmt.setDate(3,new java.sql.Date(date.getTime()));
但应该注意的是前面的Date是java.util类里的,而后面的Date是java.sql类里的。

4
完成查询操作

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Date;

import com.mysql.jdbc.Connection;

public class JDBCMySQLSELECT {

public static final String DBDRIVER="org.gjt.mm.mysql.Driver";

public static final String DBURL="jdbc:mysql://localhost:3306/数据库名";

public static final String DBUSER="root";

public static final String DBPASS="密码";

public static void main(String []args){

Connection conn=null;

java.sql.PreparedStatement pstmt=null;

ResultSet result=null; //表示接收数据库的查询结果

String sql="SELECT id,name,age,birthday FROM student";

try {

Class.forName(DBDRIVER);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

conn=(Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);

pstmt=conn.prepareStatement(sql);

/*在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。*/

result=pstmt.executeQuery();

while(result.next())

{

int id=result.getInt("id");

String name=result.getString("name");

int age=result.getInt("age");

Date birthday=result.getDate("birthday");

System.out.print("id="+id+";");

System.out.print("name="+name+";");

System.out.print("age="+age+";");

System.out.println("birthday="+birthday+";");

}

result.close();

pstmt.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}


注:关闭的顺序和打开的顺序是相反的。

5
完成删除操作

import java.sql.DriverManager;

import java.sql.SQLException;

import com.mysql.jdbc.Connection;

public class JDBCMySQLDELETE {

public static final String DBDRIVER="org.gjt.mm.mysql.Driver";

public static final String DBURL="jdbc:mysql://localhost:3306/数据库名";

public static final String DBUSER="root";

public static final String DBPASS="密码";

public static void main(String []args){

Connection conn=null;

java.sql.PreparedStatement pstmt=null;

String sql="DELETE FROM student WHERE id=3";

try {

Class.forName(DBDRIVER);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

try {

conn=(Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);

pstmt=conn.prepareStatement(sql);

pstmt.executeUpdate();

pstmt.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}
}

注:此删除操作是按照id删除的。
1.10修改数据字段

ALTER TABLE
表名 CHANGE
原列名 新列名
新列名属性;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: