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!