手动实现数据库修改(添加、修改、删除)操作【单行】

 

手动实现对数据库中【单行】数据的修改(添加、修改、删除)操作(以Customers表为例)

 

 Customers表

 

添加操作:

 1 /***
 2      * @Description    向customer表中添加一条记录
 3      * @author XiaoFeng  
 4      * @date 2020年8月21日下午12:45:09
 5      */
 6     @Test
 7     public void testInstance() {
 8         Connection conn = null;
 9         PreparedStatement ps = null;
10         try {
11             // 一. 建立与数据库的连接
12             // 1. 加载资源
13 //        InputStream is = MySqlTest.class.getClassLoader().getResourceAsStream("jdbc.properties") ;
14             InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
15             Properties pros = new Properties();
16             pros.load(is);
17             // 2. 读取资源
18             String user = pros.getProperty("user");
19             String password = pros.getProperty("password");
20             String url = pros.getProperty("url");
21             String driver = pros.getProperty("driverClass");
22             // 3. 加载驱动
23             Class.forName(driver);
24             // 4. 获取数据库连接
25             conn = DriverManager.getConnection(url, user, password);
26             // 二. 操作数据库
27             // 1. 预编译sql语句,返回PreparedStatement实例对象
28             String sql = "insert into customers(id,name,email,birth) values(?,?,?,?) ";
29             ps = conn.prepareStatement(sql);
30             // 2. 填充占位符
31             ps.setObject(1, 20);
32             ps.setObject(2, "钢铁侠");
33             ps.setObject(3, "911.@usa.cn");
34             ps.setObject(4, "1990-09-01");
35             // 3. 执行操作
36             ps.execute();
37             System.out.println("数据填充完成!");
38         } catch (Exception e) {
39             e.printStackTrace();
40         } finally {
41             // 三. 关闭资源
42             if (ps != null) {
43                 try {
44                     ps.close();
45                 } catch (SQLException e) {
46                     e.printStackTrace();
47                 }
48             }
49             if (conn != null) {
50                 try {
51                     conn.close();
52                 } catch (SQLException e) {
53                     e.printStackTrace();
54                 }
55             }
56         }
57     }

 

修改操作:

 1 /***
 2      * 
 3      * @Description 修改customer表中的一个记录
 4      * @author XiaoFeng
 5      * @throws Exception
 6      * @date 2020年8月21日下午12:47:00
 7      */
 8     @Test
 9     public void testUpdate() {
10         Connection conn = null;
11         PreparedStatement ps = null;
12         try {
13             // 与数据库建立 连接
14             // 加载资源
15             InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
16             Properties pros = new Properties();
17             pros.load(is);
18             // 读取资源
19             String user = pros.getProperty("user");
20             String password = pros.getProperty("password");
21             String url = pros.getProperty("url");
22             String driver = pros.getProperty("driverClass");
23             // 加载数据库驱动
24             Class.forName(driver);
25             // 获取数据库连接
26             conn = DriverManager.getConnection(url, user, password);
27 
28             // 操作数据库
29             // 预编译SQL语句,返回PreparedStatement实例对象
30             String sql = "update customers set name = ? where id = ?";
31             ps = conn.prepareStatement(sql);
32             // 填充占位符
33             ps.setObject(1, "钢铁侠2.0");
34             ps.setObject(2, 20);
35             // 执行语句
36             ps.execute();
37             System.out.println("修改数据成功");
38         } catch (Exception e) {
39             e.printStackTrace();
40         } finally {
41             // 关闭资源
42             if (ps != null) {
43                 try {
44                     ps.close();
45                 } catch (SQLException e) {
46                     e.printStackTrace();
47                 }
48             }
49             if (conn != null) {
50                 try {
51                     conn.close();
52                 } catch (SQLException e) {
53                     e.printStackTrace();
54                 }
55             }
56         }
57     }

 

总结:实现对数据库中【单行】数据的修改(添加、修改、删除)统一操作

 1 /***
 2      * 
 3      * @Description 对数据库增删改的通用操作
 4      * @author XiaoFeng
 5      * @throws Exception
 6      * @date 2020年8月21日下午1:04:57
 7      */
 8 //    与可变形参的长度要与sql中占位符的个数相同
 9     public void Update(String sql, Object... args) {
10         
11         Connection conn = null;
12         PreparedStatement ps = null;
13         try {
14             // 建立与数据库的连接
15                 // 加载资源
16             InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
17             Properties pros = new Properties();
18             pros.load(is);
19                 // 获取资源
20             String user = pros.getProperty("user");
21             String password = pros.getProperty("password");
22             String url = pros.getProperty("url");
23             String driver = pros.getProperty("driverClass");
24                 // 加载数据库驱动
25             Class.forName(driver);
26                 // 获取数据库连接
27             conn = DriverManager.getConnection(url, user, password);
28             // 操作数据库
29                 // 预编译SQL语句,返回PreparedStatement实例对象
30             ps = conn.prepareStatement(sql);
31                 // 填充占位符
32             for (int i = 0; i < args.length; i++) {
33                 ps.setObject(i + 1, args[i]);
34             }
35                 // 执行操作
36             ps.execute();
37             System.out.println("操作执行完成!");
38         } catch (Exception e) {
39             e.printStackTrace();
40         } finally {
41             // 关闭资源
42             if (ps != null) {
43                 try {
44                     ps.close();
45                 } catch (SQLException e) {
46                     e.printStackTrace();
47                 }
48             }
49             if (conn != null) {
50                 try {
51                     conn.close();
52                 } catch (SQLException e) {
53                     e.printStackTrace();
54                 }
55             }
56         }
57     }

 

测试代码:

 1 @Test
 2     public void CreatrTest() {
 3 //         测试添加操作
 4         String sql = "insert into customers(id,name,email,birth) values(?,?,?,?)";
 5         Update(sql, 21, "美国队长", "MGDZ@test.com", "1850-07-01");
 6     }
 7 
 8     @Test
 9     public void deleteTest() {
10 //         测试删除操作
11         String sql = "delete from customers where id = ?";
12         Update(sql, 21);
13     }
14 
15     @Test
16     public void UpdateTest() {
17 //         测试修改操作
18         String sql = "update customers set name = ? where id = ?";
19         Update(sql, "钢铁侠3.0", 20);
20     }

 

posted @ 2020-08-21 13:39  薄言襭之  阅读(534)  评论(0编辑  收藏  举报