0. 一般过程:
(1) 调用Class.forName()方法加载驱动程序。
(2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象。
(3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句)、PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句)。
(4) 调用excuteQuery()等方法执行SQL语句,并将结果保存在ResultSet对象;或者调用executeUpdate()等方法执行SQL语句,不返回ResultSet对象的结果。
(5)对返回的ResultSet对象进行显示等相当的处理。
(6)释放资源。
(1) 下载Mysql连接驱动
网址: http://dev.mysql.com/downloads/connector/j/ ,下载后放在F:\博士科研资料\数据库学习\mysql相关程序文件中,解压。
(2) 加载JDBC驱动
操作方法:在Eclipse中,选中相应的工程,点击Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,点OK。
(3) 建一个简单的数据库如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.sql.*;
public class GetConnection {
public static void main(String[] args){
try {
//调用Class.forName()方法加载驱动程序
Class.forName( "com.mysql.jdbc.Driver" );
} catch (ClassNotFoundException e1){
System.out.println( "找不到MySQL驱动!" );
e1.printStackTrace();
}
String url= "jdbc:mysql://localhost:3306/mysql" ; //JDBC的URL
//调用DriverManager对象的getConnection()方法,获得一个Connection对象
Connection conn;
try {
conn = DriverManager.getConnection(url, "root" , "" );
//创建一个Statement对象
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.print( "成功连接到数据库!" );
stmt.close();
conn.close();
} catch (SQLException e){
e.printStackTrace();
}
}
}
|
2. 查询数据表
在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.sql.*;
public class SelectTable {
public static void main(String[] args){
try{
//调用Class.forName()方法加载驱动程序
Class.forName( "com.mysql.jdbc.Driver" );
System. out .println( "成功加载MySQL驱动!" );
String url= "jdbc:mysql://localhost:3306/aniu" ; //JDBC的URL
Connection conn;
conn = DriverManager.getConnection(url, "root" , "" );
Statement stmt = conn.createStatement(); //创建Statement对象
System. out .println( "成功连接到数据库!" );
String sql = "select * from stu" ; //要执行的SQL
ResultSet rs = stmt.executeQuery(sql);//创建数据对象
System. out .println( "编号" + "\t" + "姓名" + "\t" + "年龄" );
while (rs. next ()){
System. out .print(rs.getInt(1) + "\t" );
System. out .print(rs.getString(2) + "\t" );
System. out .print(rs.getInt(3) + "\t" );
System. out .println();
}
rs. close ();
stmt. close ();
conn. close ();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
|
3. 修改和删除数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
//修改删除数据
import java.sql.*;
public class UpdateDeleteDemo {
public static void main(String[] args) throws Exception{
try {
//调用Class.forName()方法加载驱动程序
Class.forName( "com.mysql.jdbc.Driver" );
System.out.println( "成功加载MySQL驱动!" );
String url= "jdbc:mysql://localhost:3306/aniu" ; //JDBC的URL
Connection conn;
conn = DriverManager.getConnection(url, "root" , "" );
Statement stmt = conn.createStatement(); //创建Statement对象
System.out.println( "成功连接到数据库!" );
//查询数据的代码
String sql = "select * from stu" ; //要执行的SQL
ResultSet rs = stmt.executeQuery(sql); //创建数据对象
System.out.println( "编号" + "\t" + "姓名" + "\t" + "年龄" );
while (rs.next()){
System.out.print(rs.getInt( 1 ) + "\t" );
System.out.print(rs.getString( 2 ) + "\t" );
System.out.print(rs.getInt( 3 ) + "\t" );
System.out.println();
}
//修改数据的代码
String sql2 = "update stu set name=? where number=?" ;
PreparedStatement pst = conn.prepareStatement(sql2);
pst.setString( 1 , "8888" );
pst.setInt( 2 , 198 );
pst.executeUpdate();
//删除数据的代码
String sql3 = "delete from stu where number=?" ;
pst = conn.prepareStatement(sql3);
pst.setInt( 1 , 701 );
pst.executeUpdate();
ResultSet rs2 = stmt.executeQuery(sql); //创建数据对象
System.out.println( "编号" + "\t" + "姓名" + "\t" + "年龄" );
while (rs.next()){
System.out.print(rs2.getInt( 1 ) + "\t" );
System.out.print(rs2.getString( 2 ) + "\t" );
System.out.print(rs2.getInt( 3 ) + "\t" );
System.out.println();
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
}
|
以上所述是小编给大家介绍的Java对MySQL数据库进行连接、查询和修改操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.2cto.com/database/201707/657733.html