1 packagehelloworld.jdbcTemplate;2
3 importorg.springframework.jdbc.core.JdbcTemplate;4
5 import java.sql.*;6 importjava.util.List;7
8 /**
9 * 功能:通过JdbcTemplate实现查询操作10 * 查询结果需要自己封装(实现RowMapper接口)11 */
12
13 public classJdbcTemplateDemo2 {14 //JdbcTemplate使用步骤:15 //1、导入jar包;2、设置数据库信息;3、设置数据源;4、调用jdbcTemplate对象中的方法实现操作
16
17 public static voidmain(String[] args) {18 //设置数据库信息和据源
19 JdbcTemplateObject jdbcTemplateObject = newJdbcTemplateObject();20 JdbcTemplate jdbcTemplate =jdbcTemplateObject.getJdbcTemplate();21
22 //插入数据23 //insertData();24
25 //查询返回某一个值:查询表中数据总数
26 queryForOne(jdbcTemplate);27
28 //查询返回对象
29 queryForObject(jdbcTemplate);30
31 //查询返回list集合
32 queryForList(jdbcTemplate);33
34 //使用JDBC底层实现查询
35 queryWithJDBC();36 }37
38 //插入数据
39 public static voidinsertData() {40 JdbcTemplateObject jdbcTemplateObject = newJdbcTemplateObject();41 JdbcTemplate jdbcTemplate =jdbcTemplateObject.getJdbcTemplate();42 //调用jdbcTemplate对象中的方法实现操作
43 String sql = "insert into user value(?,?,?)";44 //表结构:id(int、自增),name(varchar 100),age(int 10)
45 int rows = jdbcTemplate.update(sql, null, "Tom", 35);46 System.out.println("插入行数:" +rows);47 }48
49 /**
50 * 查询返回某一个值:查询表中数据总数51 */
52 public static voidqueryForOne(JdbcTemplate jdbcTemplate) {53 String sql = "select count(*) from user";54 //调用方法获得记录数
55 int count = jdbcTemplate.queryForObject(sql, Integer.class);56 System.out.println("数据总数:" +count);57 }58
59 /**
60 * 功能:查询返回单个对象61 * 步骤:新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象62 */
63 public static voidqueryForObject(JdbcTemplate jdbcTemplate) {64 String sql = "select * from user where name = ?";65 //新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象
66 User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "Tom");67 System.out.println(user);68 }69
70 /**
71 * 功能:查询返回对象集合72 * 步骤:新建MyRowMapper类实现RowMapper接口,重写mapRow方法,指定返回User对象73 */
74 public static voidqueryForList(JdbcTemplate jdbcTemplate) {75 String sql = "select * from user";76 //第三个参数可以省略
77 List users = jdbcTemplate.query(sql, newMyRowMapper());78 System.out.println(users);79 }80
81 /**
82 * 使用JDBC底层实现查询83 */
84 public static voidqueryWithJDBC() {85 Connection conn = null;86 PreparedStatement psmt = null;87 ResultSet rs = null;88 String jdbcUrl = "jdbc:mysql://192.168.184.130:3306/gxrdb";89
90 try{91 //加载驱动
92 Class.forName("com.mysql.jdbc.Driver");93 //创建连接
94 conn = DriverManager.getConnection(jdbcUrl, "root", "root");95 String sql = "select * from user where name = ?";96 //预编译sql
97 psmt =conn.prepareStatement(sql);98 //从1开始,没有就不需要
99 psmt.setString(1, "Tom");100 //执行sql
101 rs =psmt.executeQuery();102 //int num = psmt.executeUpdate();//增删改,返回操作记录数103
104 //遍历结果集
105 while(rs.next()) {106 //根据列名查询对应的值,也可以是位置序号
107 String name = rs.getString("name");108 String age = rs.getString("age");109 System.out.println(name);110 System.out.println(age);111 }112 } catch(Exception e) {113 e.printStackTrace();114 } finally{115 try{116 rs.close();117 psmt.close();118 conn.close();119 } catch(SQLException e) {120 e.printStackTrace();121 }122 }123 }124
125 }