1.查询数据
先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实
际上就是对这个集合的查询;
1 public class Show { 2 public static void main(String[] args) { 3 //获取之前的数据集合 4 List<User> list = Do.userlist(); 5 //foreach遍历这个集合 6 for (User user : list) { 7 //查询条件,查找user为tom的用户名和密码 8 if(user.user.equals("tom")) { 9 //这里要用equals()方法,不能用==,切记 10 System.out.println("用户名:"+user.user+";密码:"+user.password); 11 } 12 } 13 } 14 }
控制台打印如下:
1 用户名:tom;密码:243523563
其实我们也可以将这个方法封装起来,并传入一个字符串参数,从而实现对用户信息的输出,在这里不做深究。
2.增加数据
在实现这个功能之前我们要事先了解一下,SQL语句是如何实现数据的添加的;
先来看一下表有哪些数据项
我们可以看到,这个表中有4个属性,由于设置的时候,设置成了必填,所以,添加的时候也得全填
SQL语句:
INSERT INTO table1(id,user,password,age) VALUES ('5','cindy','35675467','23') ;
1 public class Insert { 2 // 利用含参构造器新建一个User对象,传入数据 3 static User newuser = new User(5, "cindy", "123452", 23); 4 // 定义含参方法将这个数据(对象)添加到表格中 5 public static void add(User newuser) { 6 try { 7 // 获取数据库的连接 8 Connection conn = MySQL.getconnect(); 9 // 设置SQL规则,数据由于还不知道先用?代替 10 String sql = "INSERT INTO table1(id,user,password,age) VALUES (?,?,?,?)"; 11 // 预处理sql语句 12 PreparedStatement presta = conn.prepareStatement(sql); 13 // 设置sql语句中的values值 14 presta.setInt(1, newuser.id); 15 presta.setString(2, newuser.user); 16 presta.setString(3, newuser.password); 17 presta.setInt(4, newuser.age); 18 // 执行SQL语句,实现数据添加 19 presta.execute(); 20 } catch (SQLException e) { 21 e.printStackTrace(); 22 } 23 } 24 public static void main(String[] args) { 25 // 执行add(newuser)方法 26 add(newuser); 27 } 28 }
我们看看结果:
添加成功,Bingo!
3.删除数据
其实增删改查,实际上就是对sql语句的运用,这里的删除也不例外
1 public static void delete(Integer id) { 2 try { 3 // 获取数据库的连接 4 Connection conn = MySQL.getconnect(); 5 // 设置SQL规则,数据由于还不知道先用?代替 6 //String sql = "INSERT INTO table1(id,user,password,age) VALUES (?,?,?,?)"; 7 //String sql = "Update table1 set user=?,password=?,age=? where id=?"; 8 String sql = "delete from table1 where id=?"; 9 // 预处理sql语句 10 PreparedStatement presta = conn.prepareStatement(sql); 11 // 设置sql语句中的values值 12 presta.setInt(1,id); 13 // 执行SQL语句,实现数据添加 14 presta.execute(); 15 } catch (SQLException e) { 16 e.printStackTrace(); 17 } 18 } 19 public static void main(String[] args) { 20 // 执行add(newuser)方法 21 delete(2); 22 }
delete()方法传入了一个参数id,用于删除指定id的数据,如下:
id为2的信息被删除了,beautiful!
4.更新数据
1 public class Insert { 2 // 利用含参构造器新建一个User对象,传入数据 3 static User newuser = new User(5, "Cindy", "1234567890", 23); 4 // 定义含参方法将这个数据(对象)添加到表格中 5 public static void update(User newuser) { 6 try { 7 // 获取数据库的连接 8 Connection conn = MySQL.getconnect(); 9 // 设置SQL规则,数据由于还不知道先用?代替 10 //String sql = "INSERT INTO table1(id,user,password,age) VALUES (?,?,?,?)"; 11 String sql = "Update table1 set user=?,password=?,age=? where id=?"; 12 // 预处理sql语句 13 PreparedStatement presta = conn.prepareStatement(sql); 14 // 设置sql语句中的values值 15 presta.setString(1, newuser.user); 16 presta.setString(2, newuser.password); 17 presta.setInt(3, newuser.age); 18 presta.setInt(4, newuser.id); 19 // 执行SQL语句,实现数据添加 20 presta.execute(); 21 } catch (SQLException e) { 22 e.printStackTrace(); 23 } 24 } 25 public static void main(String[] args) { 26 // 执行add(newuser)方法 27 update(newuser); 28 } 29 }
这里是根据ID号来更新信息,结果如下
姓名、密码被成功更改,nice!