Java对MySQL数据库进行连接、查询和修改
一般过程:
(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. 连接数据库
(1) 下载Mysql连接驱动
网址: http://dev.mysql.com/downloads/connector/j/。
(2) 加载JDBC驱动
操作方法:在Eclipse中,选中相应的工程,点击Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,点OK。
(3) 建一个简单的数据库如下:
1 import java.sql.*; 2 public class GetConnection { 3 public static void main(String[] args){ 4 try{ 5 //调用Class.forName()方法加载驱动程序 6 Class.forName("com.mysql.jdbc.Driver"); 7 System.out.println("成功加载MySQL驱动!"); 8 }catch(ClassNotFoundException e1){ 9 System.out.println("找不到MySQL驱动!"); 10 e1.printStackTrace(); 11 } 12 13 String url="jdbc:mysql://localhost:3306/mysql"; //JDBC的URL 14 //调用DriverManager对象的getConnection()方法,获得一个Connection对象 15 Connection conn; 16 try { 17 conn = DriverManager.getConnection(url, "root",""); 18 //创建一个Statement对象 19 Statement stmt = conn.createStatement(); //创建Statement对象 20 System.out.print("成功连接到数据库!"); 21 stmt.close(); 22 conn.close(); 23 } catch (SQLException e){ 24 e.printStackTrace(); 25 } 26 } 27 }
2. 查询数据表
在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。
1 import java.sql.*; 2 3 public class SelectTable { 4 5 public static void main(String[] args){ 6 try{ 7 //调用Class.forName()方法加载驱动程序 8 Class.forName("com.mysql.jdbc.Driver"); 9 System.out.println("成功加载MySQL驱动!"); 10 11 String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL 12 Connection conn; 13 14 conn = DriverManager.getConnection(url, "root",""); 15 Statement stmt = conn.createStatement(); //创建Statement对象 16 System.out.println("成功连接到数据库!"); 17 18 String sql = "select * from stu"; //要执行的SQL 19 ResultSet rs = stmt.executeQuery(sql);//创建数据对象 20 System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 21 while (rs.next()){ 22 System.out.print(rs.getInt(1) + "\t"); 23 System.out.print(rs.getString(2) + "\t"); 24 System.out.print(rs.getInt(3) + "\t"); 25 System.out.println(); 26 } 27 rs.close(); 28 stmt.close(); 29 conn.close(); 30 }catch(Exception e) 31 { 32 e.printStackTrace(); 33 } 34 } 35 }
3. 修改和删除数据库
1 //修改删除数据 2 import java.sql.*; 3 public class UpdateDeleteDemo { 4 public static void main(String[] args)throws Exception{ 5 try{ 6 //调用Class.forName()方法加载驱动程序 7 Class.forName("com.mysql.jdbc.Driver"); 8 System.out.println("成功加载MySQL驱动!"); 9 10 String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL 11 Connection conn; 12 13 conn = DriverManager.getConnection(url, "root",""); 14 Statement stmt = conn.createStatement(); //创建Statement对象 15 System.out.println("成功连接到数据库!"); 16 17 //查询数据的代码 18 String sql = "select * from stu"; //要执行的SQL 19 ResultSet rs = stmt.executeQuery(sql);//创建数据对象 20 System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 21 while (rs.next()){ 22 System.out.print(rs.getInt(1) + "\t"); 23 System.out.print(rs.getString(2) + "\t"); 24 System.out.print(rs.getInt(3) + "\t"); 25 System.out.println(); 26 } 27 28 //修改数据的代码 29 String sql2 = "update stu set name=? where number=?"; 30 PreparedStatement pst = conn.prepareStatement(sql2); 31 pst.setString(1,"8888"); 32 pst.setInt(2,198); 33 pst.executeUpdate(); 34 35 //删除数据的代码 36 String sql3 = "delete from stu where number=?"; 37 pst = conn.prepareStatement(sql3); 38 pst.setInt(1,701); 39 pst.executeUpdate(); 40 41 ResultSet rs2 = stmt.executeQuery(sql);//创建数据对象 42 System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 43 while (rs.next()){ 44 System.out.print(rs2.getInt(1) + "\t"); 45 System.out.print(rs2.getString(2) + "\t"); 46 System.out.print(rs2.getInt(3) + "\t"); 47 System.out.println(); 48 } 49 50 rs.close(); 51 stmt.close(); 52 conn.close(); 53 }catch(Exception e) 54 { 55 e.printStackTrace(); 56 } 57 } 58 }
[1] http://school.itzcn.com/video-vid-2308-spid-50.html
[2] http://school.itzcn.com/video-vid-2309-spid-50.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。