总要有人来改变世界的,为什么不能是你呢

java数据库(MySQL)之增删改查

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!

posted @ 2017-11-04 23:16  桔子桑  阅读(36955)  评论(2编辑  收藏  举报