新建一個工程,添加對數據庫的支持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的記錄刪除掉了