JdbcTemplateDemo2.java java
package helloworld.jdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate; import java.sql.*; import java.util.List; /** * 功能:經過JdbcTemplate實現查詢操做 * 查詢結果須要本身封裝(實現RowMapper接口) */ public class JdbcTemplateDemo2 { // JdbcTemplate使用步驟: // 一、導入jar包;二、設置數據庫信息;三、設置數據源;四、調用jdbcTemplate對象中的方法實現操做 public static void main(String[] args) { // 設置數據庫信息和據源 JdbcTemplateObject jdbcTemplateObject = new JdbcTemplateObject(); JdbcTemplate jdbcTemplate = jdbcTemplateObject.getJdbcTemplate(); // 插入數據 // insertData(); // 查詢返回某一個值:查詢表中數據總數 queryForOne(jdbcTemplate); // 查詢返回對象 queryForObject(jdbcTemplate); // 查詢返回list集合 queryForList(jdbcTemplate); // 使用JDBC底層實現查詢 queryWithJDBC(); } // 插入數據 public static void insertData() { JdbcTemplateObject jdbcTemplateObject = new JdbcTemplateObject(); JdbcTemplate jdbcTemplate = jdbcTemplateObject.getJdbcTemplate(); // 調用jdbcTemplate對象中的方法實現操做 String sql = "insert into user value(?,?,?)"; //表結構:id(int、自增),name(varchar 100),age(int 10) int rows = jdbcTemplate.update(sql, null, "Tom", 35); System.out.println("插入行數:" + rows); } /** * 查詢返回某一個值:查詢表中數據總數 */ public static void queryForOne(JdbcTemplate jdbcTemplate) { String sql = "select count(*) from user"; // 調用方法得到記錄數 int count = jdbcTemplate.queryForObject(sql, Integer.class); System.out.println("數據總數:" + count); } /** * 功能:查詢返回單個對象 * 步驟:新建MyRowMapper類實現RowMapper接口,重寫mapRow方法,指定返回User對象 */ public static void queryForObject(JdbcTemplate jdbcTemplate) { String sql = "select * from user where name = ?"; // 新建MyRowMapper類實現RowMapper接口,重寫mapRow方法,指定返回User對象 User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom"); System.out.println(user); } /** * 功能:查詢返回對象集合 * 步驟:新建MyRowMapper類實現RowMapper接口,重寫mapRow方法,指定返回User對象 */ public static void queryForList(JdbcTemplate jdbcTemplate) { String sql = "select * from user"; // 第三個參數能夠省略 List<User> users = jdbcTemplate.query(sql, new MyRowMapper()); System.out.println(users); } /** * 使用JDBC底層實現查詢 */ public static void queryWithJDBC() { Connection conn = null; PreparedStatement psmt = null; ResultSet rs = null; String jdbcUrl = "jdbc:mysql://192.168.184.130:3306/gxrdb"; try { // 加載驅動 Class.forName("com.mysql.jdbc.Driver"); // 建立鏈接 conn = DriverManager.getConnection(jdbcUrl, "root", "root"); String sql = "select * from user where name = ?"; // 預編譯sql psmt = conn.prepareStatement(sql); // 從1開始,沒有就不須要 psmt.setString(1, "Tom"); // 執行sql rs = psmt.executeQuery(); // int num = psmt.executeUpdate(); //增刪改,返回操做記錄數 // 遍歷結果集 while (rs.next()) { //根據列名查詢對應的值,也能夠是位置序號 String name = rs.getString("name"); String age = rs.getString("age"); System.out.println(name); System.out.println(age); } } catch (Exception e) { e.printStackTrace(); } finally { try { rs.close(); psmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
MyRowMapper.java mysql
package helloworld.jdbcTemplate; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; /** * 實現RowMapper接口,返回User對象 * */ public class MyRowMapper implements RowMapper<User>{ @Override public User mapRow(ResultSet resultSet, int i) throws SQLException { // 獲取結果集中的數據 String name = resultSet.getString("name"); String age = resultSet.getString("age"); // 把數據封裝成User對象 User user = new User(); user.setName(name); user.setAge(age); return user; } }
JdbcTemplateObject.javaspring
package helloworld.jdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; /** * 功能:設置數據庫信息和數據源 * * JdbcTemplat使用 * 一、導入jar包;二、設置數據庫信息;三、設置數據源;四、調用jdbcTemplate對象中的方法實現操做 */ public class JdbcTemplateObject { DriverManagerDataSource dataSource; JdbcTemplate jdbcTemplate; public JdbcTemplateObject() { // 設置數據庫信息 this.dataSource = new DriverManagerDataSource(); this.dataSource.setDriverClassName("com.mysql.jdbc.Driver"); this.dataSource.setUrl("jdbc:mysql://192.168.184.130:3306/gxrdb"); this.dataSource.setUsername("root"); this.dataSource.setPassword("root"); // 設置數據源 this.jdbcTemplate = new JdbcTemplate(dataSource); } public DriverManagerDataSource getDataSource() { return dataSource; } public void setDataSource(DriverManagerDataSource dataSource) { this.dataSource = dataSource; } public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } }
User.javasql
package helloworld.jdbcTemplate; /** * 數據封裝類 * */ public class User { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } @Override public String toString() { return "User{姓名:" + name + "; 年齡:" + age + "}"; } }