Java框架spring 學習筆記(十五):操做MySQL數據庫

新建一個工程,添加對數據庫的支持java

下載mysql驅動包 mysql-connector-java-5.1.7-bin.jar,快捷鍵ctrl+alt+shift+s,添加jar包到工程mysql

編寫JdbcTemplateDemo.javaspring

  1 package com.jdbc;
  2 
  3 import org.junit.Test;
  4 import org.springframework.jdbc.core.JdbcTemplate;
  5 import org.springframework.jdbc.core.RowMapper;
  6 import org.springframework.jdbc.datasource.DriverManagerDataSource;
  7 
  8 import java.sql.*;
  9 import java.util.List;
 10 
 11 public class JdbcTemplateDemo {
 12     //1 增長操做
 13     @Test
 14     public void add() {
 15         //設置數據庫信息
 16         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 17         dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驅動
 18         dataSource.setUrl("jdbc:mysql:///test"); //添加數據庫路徑
 19         dataSource.setUsername("root"); //用戶名
 20         dataSource.setPassword("xxxxxx"); //密碼
 21 
 22         //建立jdbcTemplate對象,設置數據庫
 23         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 24 
 25         //sql語句
 26         String sql = "INSERT INTO User VALUES(?,?)";
 27 
 28         //調用jdbcTemplate對象裏面的update方法實現插入操做
 29         int rows = jdbcTemplate.update(sql, "Lucy", "250");
 30         System.out.println(rows);
 31     }
 32 
 33     //2 刪除操做
 34     @Test
 35     public void delete() {
 36         //設置數據庫信息
 37         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 38         dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驅動
 39         dataSource.setUrl("jdbc:mysql:///test"); //添加數據庫路徑
 40         dataSource.setUsername("root"); //用戶名
 41         dataSource.setPassword("xxxxxx"); //密碼
 42 
 43         //建立jdbcTemplate對象,設置數據庫
 44         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 45 
 46         //sql語句
 47         String sql = "DELETE FROM user WHERE username=?";
 48 
 49         //調用jdbcTemplate對象裏面的update方法實現刪除操做
 50         int rows = jdbcTemplate.update(sql, "Lucy");
 51         System.out.println(rows);
 52     }
 53 
 54     //3 修改操做
 55     @Test
 56     public void update() {
 57         //設置數據庫信息
 58         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 59         dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驅動
 60         dataSource.setUrl("jdbc:mysql:///test"); //添加數據庫路徑
 61         dataSource.setUsername("root"); //用戶名
 62         dataSource.setPassword("xxxxxx"); //密碼
 63 
 64         //建立jdbcTemplate對象,設置數據庫
 65         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 66 
 67         //sql語句
 68         String sql = "UPDATE user SET password=? WHERE username=?";
 69         //調用jdbcTemplate對象裏面的update方法實現操做修改方法
 70         int rows = jdbcTemplate.update(sql, "111111", "Lucy");
 71         System.out.println(rows);
 72     }
 73 
 74     //4 查詢操做
 75     //4.1查詢有多少記錄
 76     @Test
 77     public void findCount() {
 78         //設置數據庫信息
 79         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 80         dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驅動
 81         dataSource.setUrl("jdbc:mysql:///test"); //添加數據庫路徑
 82         dataSource.setUsername("root"); //用戶名
 83         dataSource.setPassword("xxxxxx"); //密碼
 84 
 85         //建立jdbcTemplate對象,設置數據庫
 86         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 87 
 88         //sql語句
 89         String sql = "SELECT count(*) FROM user";
 90         //調用jdbcTemplate對象裏面的queryForObject 方法獲得記錄數
 91         //queryForObject 查詢返回某一個值,第一個參數,第二個參數返回類型
 92         int count = jdbcTemplate.queryForObject(sql, Integer.class);
 93         System.out.println("一共查詢到" + count + "條記錄");
 94     }
 95 
 96     //4.2查詢返回對象,jdbc原始操做
 97     @Test
 98     public void findObject() {
 99         //建立鏈接對象
100         Connection conn = null;
101         //建立預編譯對象
102         PreparedStatement psmt = null;
103         //建立結果集對象
104         ResultSet rs = null;
105 
106         //加載驅動
107         try {
108             Class.forName("com.mysql.jdbc.Driver");
109             conn = DriverManager.getConnection("jdbc:mysql:///test", "root", "xxxxxx");
110             //編寫sql語句,查詢表中全部記錄
111             String sql = "SELECT * FROM user WHERE username=?";
112             //預編譯sql
113             psmt = conn.prepareStatement(sql);
114             //設置參數值
115             psmt.setString(1, "Lucy");
116             //執行sql
117             rs = psmt.executeQuery();
118             //遍歷結果集
119             while (rs.next()) {
120                 //獲得返回結果
121                 String username = rs.getString("username");
122                 String password = rs.getString("password");
123                 //放到User對象裏面
124                 User user = new User();
125                 user.setUsername(username);
126                 user.setPassword(password);
127                 //輸出查詢結果
128                 System.out.println(user);
129             }
130         } catch (Exception e) {
131             e.printStackTrace();
132         } finally {
133             try {
134                 //關閉數據庫
135                 rs.close();
136                 psmt.close();
137                 conn.close();
138             } catch (SQLException e) {
139                 e.printStackTrace();
140             }
141         }
142     }
143 
144     //4.3查詢返回對象
145     @Test
146     public void findObject1() {
147         //設置數據庫信息
148         DriverManagerDataSource dataSource = new DriverManagerDataSource();
149         dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驅動
150         dataSource.setUrl("jdbc:mysql:///test"); //添加數據庫路徑
151         dataSource.setUsername("root"); //用戶名
152         dataSource.setPassword("xxxxxx"); //密碼
153 
154         //建立jdbcTemplate對象,設置數據庫
155         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
156 
157         //sql語句 根據username查詢
158         String sql = "SELECT * FROM user WHERE username=?";
159 
160         //查詢返回對象,第一個參數sql語句,第二個參數是RowMapper接口,須要本身寫類作數據封裝,第三個參數是可變參數
161         User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");
162         System.out.println(user);
163     }
164 
165     //4.4查詢返回對象List
166     @Test
167     public void findList() {
168         //設置數據庫信息
169         DriverManagerDataSource dataSource = new DriverManagerDataSource();
170         dataSource.setDriverClassName("com.mysql.jdbc.Driver"); //添加驅動
171         dataSource.setUrl("jdbc:mysql:///test"); //添加數據庫路徑
172         dataSource.setUsername("root"); //用戶名
173         dataSource.setPassword("xxxxxx"); //密碼
174 
175         //建立jdbcTemplate對象,設置數據庫
176         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
177 
178         //sql語句 查詢全部記錄
179         String sql = "SELECT * FROM user";
180 
181         //query第一個參數sql語句,第二個參數是RowMapper接口,須要本身寫類作數據封裝,第三個參數是可變參數可省略
182         List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
183         System.out.println(list);
184     }
185 }
186 //本身寫數據實現類
187 class MyRowMapper implements RowMapper<User> {
188     public User mapRow(ResultSet rs,int num) throws SQLException{
189         //1 從結果集裏獲得數據
190         String username = rs.getString("username");
191         String password = rs.getString("password");
192         //2 把獲得的數據放到對象裏面
193         User user = new User();
194         user.setUsername(username);
195         user.setPassword(password);
196         return user;
197     }
198 }

編寫User類User.javasql

 1 package com.jdbc;
 2 
 3 public class User {
 4     private String username;
 5     private String password;
 6 
 7     public void setUsername(String username){ this.username = username; }
 8     public void setPassword(String password){ this.password = password; }
 9     public String getUsername(){ return username; }
10     public String getPassword(){ return password; }
11 
12     @Override
13     public String toString(){ return "User [username="+username+",password="+password+"]"; }
14 }

 

執行增長數據add(),數據庫中添加一個記錄。數據庫

 

執行修改數據update(),修改表中的記錄。app

 

手動增長几條記錄ide

 

執行查詢有多少記錄findCount(),控制檯輸出this

一共查詢到4條記錄

 

執行查詢返回對象findObject(),輸出spa

User [username=Lucy,password=111111]

 

執行查詢返回對象findObject1(),輸出3d

User [username=Tom,password=aaabbbccc]

 

執行查詢返回對象List findList(),輸出

[User [username=Lucy,password=111111], User [username=Tom,password=aaabbbccc], User [username=Jacky,password=123456], User [username=Lily,password=abccba]]

 

執行刪除操做 delete(),username爲Lucy的記錄刪除掉了

相關文章
相關標籤/搜索