Spring之jdbcTemplate:查询的三种⽅式(单个值、单个对象、
对象集合)
JdbcTemplateDemo2.java
1package helloworld.jdbcTemplate;
2
3import org.JdbcTemplate;
4
5import java.sql.*;
6import java.util.List;
7
resultset 遍历
8/**
9 * 功能:通过JdbcTemplate实现查询操作
10 * 查询结果需要⾃⼰封装(实现RowMapper接⼝)
11*/
12
13public class JdbcTemplateDemo2 {
14// JdbcTemplate使⽤步骤:
15// 1、导⼊jar包;2、设置数据库信息;3、设置数据源;4、调⽤jdbcTemplate对象中的⽅法实现操作
16
17public static void main(String[] args) {
18// 设置数据库信息和据源
19        JdbcTemplateObject jdbcTemplateObject = new JdbcTemplateObject();
20        JdbcTemplate jdbcTemplate = JdbcTemplate();
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//  插⼊数据
39public static void insertData() {
40        JdbcTemplateObject jdbcTemplateObject = new JdbcTemplateObject();
41        JdbcTemplate jdbcTemplate = JdbcTemplate();
42//        调⽤jdbcTemplate对象中的⽅法实现操作
43        String sql = "insert into user value(?,?,?)";
44//表结构:id(int、⾃增),name(varchar 100),age(int 10)
45int rows = jdbcTemplate.update(sql, null, "Tom", 35);
46        System.out.println("插⼊⾏数:" + rows);
47    }
48
49/**
50    * 查询返回某⼀个值:查询表中数据总数
51*/
52public static void queryForOne(JdbcTemplate jdbcTemplate) {
53        String sql = "select count(*) from user";
54//        调⽤⽅法获得记录数
55int count = jdbcTemplate.queryForObject(sql, Integer.class);
56        System.out.println("数据总数:" + count);
57    }
58
59/**
60    * 功能:查询返回单个对象
61    * 步骤:新建MyRowMapper类实现RowMapper接⼝,重写mapRow⽅法,指定返回User对象
62*/
63public static void queryForObject(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*/
74public static void queryForList(JdbcTemplate jdbcTemplate) {
75        String sql = "select * from user";
76//        第三个参数可以省略
77        List<User> users = jdbcTemplate.query(sql, new MyRowMapper());
78        System.out.println(users);
79    }
80
81/**
82    * 使⽤JDBC底层实现查询
83*/
84public static void queryWithJDBC() {
85        Connection conn = null;
86        PreparedStatement psmt = null;
87        ResultSet rs = null;
88        String jdbcUrl = "jdbc:mysql://192.168.184.130:3306/gxrdb";
89
90try {
91//            加载驱动
92            Class.forName("sql.jdbc.Driver");
93//            创建连接
94            conn = Connection(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 = uteQuery();
102//            int num = uteUpdate(); //增删改,返回操作记录数103
104//            遍历结果集
105while (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 {
115try {
116                rs.close();
117                psmt.close();
118                conn.close();
119            } catch (SQLException e) {
120                e.printStackTrace();
121            }
122        }
123    }
124
125 }
MyRowMapper.java
1package helloworld.jdbcTemplate;
2
3import org.RowMapper;
4
5import java.sql.ResultSet;
6import java.sql.SQLException;
7
8/**
9 * 实现RowMapper接⼝,返回User对象
10 * */
11public class MyRowMapper implements RowMapper<User>{
12
13    @Override
14public User mapRow(ResultSet resultSet, int i) throws SQLException { 15//        获取结果集中的数据
16        String name = String("name");
17        String age = String("age");
18//        把数据封装成User对象
19        User user = new User();
20        user.setName(name);
21        user.setAge(age);
22return user;
23    }
24 }
JdbcTemplateObject.java
1package helloworld.jdbcTemplate;
2
3import org.JdbcTemplate;
4import org.springframework.jdbc.datasource.DriverManagerDataSource;
5
6/**
7 * 功能:设置数据库信息和数据源
8 *
9 * JdbcTemplat使⽤
10 * 1、导⼊jar包;2、设置数据库信息;3、设置数据源;4、调⽤jdbcTemplate对象中的⽅法实现操作11*/
12public class JdbcTemplateObject {
13    DriverManagerDataSource dataSource;
14    JdbcTemplate jdbcTemplate;
15
16public JdbcTemplateObject() {
17//        设置数据库信息
18this.dataSource = new DriverManagerDataSource();
19this.dataSource.setDriverClassName("sql.jdbc.Driver");
20this.dataSource.setUrl("jdbc:mysql://192.168.184.130:3306/gxrdb");
21this.dataSource.setUsername("root");
22this.dataSource.setPassword("root");
23
24//        设置数据源
25this.jdbcTemplate = new JdbcTemplate(dataSource);
26
27    }
28
29public DriverManagerDataSource getDataSource() {
30return dataSource;
31    }
32
33public void setDataSource(DriverManagerDataSource dataSource) {
34this.dataSource = dataSource;
35    }
36
37public JdbcTemplate getJdbcTemplate() {
38return jdbcTemplate;
39    }
40
41public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
42this.jdbcTemplate = jdbcTemplate;
43    }
44 }
User.java
1package helloworld.jdbcTemplate;
2
3/**
4 * 数据封装类
5 * */
6public class User {
7private String name;
8private String age;
9
10public String getName() {
11return name;
12    }
13
14public void setName(String name) {
15this.name = name;
16    }
17
18public String getAge() {
19return age;
20    }
21
22public void setAge(String age) {
23this.age = age;
24    }
25
26    @Override
27public String toString() {
28return "User{姓名:" + name + "; 年龄:" + age + "}";
29    }
30 }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。