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小时内删除。
发表评论