JDBC
1、使用JDBC连接MySQL数据库中student表的数据。
1 package com.up.jdbc; 2 3 import java.sql.*; 4 import java.util.ArrayList; 5 import java.util.List; 6 7 public class Test01 { 8 public static void main(String[] args) { 9 10 List<Student> list=findAll(); //使用List集合接收数据库中的数据。 11 for (Student student:list 12 ) { 13 System.out.println("编号:"+student.getId()+" 姓名:"+student.getName()); 14 } 15 //只是将数据库的内容用对象封装起来,比较方便操作。 16 } 17 18 private static List<Student> findAll() { 19 Statement statement=null; //Statement用于执行静态的sql语句 20 Connection con=null; //Connection表示java程序和数据库的连接对象 21 try { 22 // 1、加载驱动 23 Class.forName("com.mysql.jdbc.Driver"); 24 25 //2、获取连接 此处我的端口是3307,一般默认3306。 test是我的数据库名 26 String sqlUrl="jdbc:mysql://127.0.0.1:3307/test?useunicode=true&characterEncoding=utf8"; 27 //Driver表示java驱动程序接口 28 con=DriverManager.getConnection(sqlUrl,"root",""); //root是用户名,我的没设置密码,空字符串是密码 29 30 //3、创建状态,不带预编译 31 statement=con.createStatement(); 32 33 //4、执行sql 34 String sql="select * from student"; 35 //ResultSet用于封装查询出来的数据 36 ResultSet set=statement.executeQuery(sql); 37 //创建List集合 38 List<Student> list=new ArrayList<>(); 39 Student student=null; 40 41 //5、获取结果集的内容 42 while(set.next()){ 43 //第1种、根据列字段索引,将数据库中的数据直接输出 44 //System.out.println(set.getInt(1)+" "+set.getString(2)); 45 //第2种、根据字段名 46 //System.out.println(set.getInt("id")+" "+set.getString("name")); 47 student=new Student();//第3种、用List集合和Student类接收数据库中数据 48 student.setId(set.getInt("id")); 49 student.setName(set.getString("name")); 50 51 list.add(student); 52 } 53 return list; //如果查询到,就返回List集合中的内容。 54 55 } catch (ClassNotFoundException e) { 56 e.printStackTrace(); 57 }catch(SQLException e){ 58 e.printStackTrace(); 59 }finally{ 60 try{ 61 // 6、关闭连接 62 statement.close(); 63 con.close(); 64 65 }catch(SQLException e){ 66 e.printStackTrace(); 67 } 68 } 69 return null;//如果没有查询到,就返回null。 70 } 71 } 72
创建Student类,去封装属性id和name。
1 package com.up.jdbc; 2 3 public class Student { 4 private int id; 5 private String name; 6 7 public int getId() { 8 return id; 9 } 10 11 public void setId(int id) { 12 this.id = id; 13 } 14 15 public String getName() { 16 return name; 17 } 18 19 public void setName(String name) { 20 this.name = name; 21 } 22 }
执行结果:
2、对数据进行增删改查
①删除
1 package day0829; 2 3 import org.junit.After; 4 import org.junit.Before; 5 import org.junit.Test; 6 7 import java.sql.Connection; 8 import java.sql.DriverManager; 9 import java.sql.SQLException; 10 import java.sql.Statement; 11 12 public class Test02 { 13 14 Statement statement=null; 15 Connection connection=null; 16 17 @Before 18 public void before(){ 19 try{ 20 //1、加载驱动 21 Class.forName("com.mysql.jdbc.Driver"); 22 23 //2、获取连接 24 String sqlUrl="jdbc:mysql://127.0.0.1:3307/test?useunicode=true&characterEncoding=utf8"; 25 connection=DriverManager.getConnection(sqlUrl); 26 27 //创建状态 28 statement=connection.createStatement(); 29 }catch (ClassNotFoundException e){ 30 e.printStackTrace(); 31 }catch(SQLException e){ 32 e.printStackTrace(); 33 } 34 35 } 36 //①删除 37 @Test 38 public void delete(){ 39 String sql="delete from student where id=2"; 40 try { 41 int result=statement.executeUpdate(sql); 42 System.out.println(result>0?"删除成功":"删除失败"); 43 } catch (SQLException e) { 44 e.printStackTrace(); 45 } 46 } 47 }
删除结果:
②修改
1 //②修改 2 @Test 3 public void update(){ 4 String sql="update student set name='古天乐' where id=1"; 5 try { 6 int result=statement.executeUpdate(sql); 7 System.out.println(result>0?"修改成功":"修改失败"); 8 } catch (SQLException e) { 9 e.printStackTrace(); 10 } 11 }
执行结果:
③添加
1 //添加 2 @Test 3 public void insert(){ 4 String sql="insert into student(name) values('渣渣辉')"; 5 try { 6 int result=statement.executeUpdate(sql); 7 System.out.println(result>0?"添加成功":"添加失败"); 8 } catch (SQLException e) { 9 e.printStackTrace(); 10 } 11 }
执行结果: