健康一贴灵,专注医药行业管理信息化

spring入门之JdbcTemplate 操作crud

复制代码
Spring 通过调用 JdbcTemplate来实现对数据库的增删改查,主要用到JdbcTemplate类的4个方法,
首先,配置数据库信息,创建对象,代码通用:
1
2
3
4
5
6
7
8
9
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/user");
dataSource.setUsername("root");
dataSource.setPassword("123456");
 
//创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

  1、修改、删除、插入 jdbcTemplate.update(sql,参数) sql示例:update users set age=? where name=? delete from users where name=? insert into users(name,age) values(?,?)

 例子:String sql = "update users set age=? where name=? ";
    int rows = jdbcTemplate.update(sql ,20,"zhaong");

2、查询一个统计值的情况,用jdbcTemplate.queryForObject():
String sql = "select count(*) from users";
  int rows = jdbcTemplate.queryForObject(sql,Integer.class);
3、查询结果是一个对象object,用jdbcTemplate.queryForObject
例:String sql = "select * from users where name=? ";
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(),"china");
4、查询结果是一个列表list:jdbcTemplate.queryForObject
  例:String sql = "select * from users";
   List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
复制代码
复制代码
 1 package spring.jdbc;
 2 
 3 public class User {
 4     private String name;
 5     private int age;
 6     public String getName() {
 7         return name;
 8     }
 9     @Override
10     public String toString() {
11         return "User [name=" + name + ", age=" + age + "]";
12     }
13     public void setName(String name) {
14         this.name = name;
15     }
16     public int getAge() {
17         return age;
18     }
19     public void setAge(int age) {
20         this.age = age;
21     }
22     
23 
24 }
复制代码

 JdbcTemplateDemo.java 测试代码

复制代码
  1 package spring.jdbc;
  2 
  3 import java.sql.ResultSet;
  4 import java.sql.SQLException;
  5 import java.util.List;
  6 
  7 import org.junit.Test;
  8 import org.springframework.jdbc.core.JdbcTemplate;
  9 import org.springframework.jdbc.core.RowMapper;
 10 import org.springframework.jdbc.datasource.DriverManagerDataSource;
 11 
 12 public class JdbcTemplateDemo {
 13     
 14     
 15     public void testObject() {
 16         //设置数据库信息
 17         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 18         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 19         dataSource.setUrl("jdbc:mysql://localhost:3306/user");
 20         dataSource.setUsername("root");
 21         dataSource.setPassword("123456");
 22         
 23         //创建jdbcTemplate对象,设置数据源
 24         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 25         
 26         //调用 JDBCteMPLATE 对象时面的方法实现操作
 27         
 28         //创建SQL语句
 29         String sql = "select * from users where name=? ";
 30         //调用方法得到记录
 31         User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(),"china");
 32         System.out.println(user);
 33     }
 34     
 35     public void testList() {
 36         //设置数据库信息
 37         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 38         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 39         dataSource.setUrl("jdbc:mysql://localhost:3306/user");
 40         dataSource.setUsername("root");
 41         dataSource.setPassword("123456");
 42         
 43         //创建jdbcTemplate对象,设置数据源
 44         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 45         //创建SQL语句
 46         String sql = "select * from users";
 47         //调用 JDBCteMPLATE 对象时面的方法实现操作
 48         List<User> list = jdbcTemplate.query(sql, new MyRowMapper());
 49         
 50         System.out.println(list);
 51     }    
 52     @Test
 53     public void testCount() {
 54         //设置数据库信息
 55         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 56         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 57         dataSource.setUrl("jdbc:mysql://localhost:3306/user");
 58         dataSource.setUsername("root");
 59         dataSource.setPassword("123456");
 60         
 61         //创建jdbcTemplate对象,设置数据源
 62         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 63         
 64         //调用 JDBCteMPLATE 对象时面的方法实现操作
 65         
 66         //创建SQL语句,查询一个统计数值
 67         String sql = "select count(*) from users";
 68         int rows = jdbcTemplate.queryForObject(sql,Integer.class);
 69         System.out.println(rows);
 70     }
 71     
 72     public void update() {
 73         //设置数据库信息
 74         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 75         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 76         dataSource.setUrl("jdbc:mysql://localhost:3306/user");
 77         dataSource.setUsername("root");
 78         dataSource.setPassword("123456");
 79         
 80         //创建jdbcTemplate对象,设置数据源
 81         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 82         
 83         //调用 JDBCteMPLATE 对象时面的方法实现操作
 84         
 85         //创建SQL语句
 86         String sql = "update users set age=? where name=? ";
 87         int rows = jdbcTemplate.update(sql ,20,"zhaong");
 88         System.out.println(rows);
 89     }
 90     
 91     public void add() {
 92         //设置数据库信息
 93         DriverManagerDataSource dataSource = new DriverManagerDataSource();
 94         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
 95         dataSource.setUrl("jdbc:mysql://localhost:3306/user");
 96         dataSource.setUsername("root");
 97         dataSource.setPassword("123456");
 98         
 99         //创建jdbcTemplate对象,设置数据源
100         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
101         
102         //调用 JDBCteMPLATE 对象时面的方法实现操作
103         
104         //创建SQL语句
105         String sql = "insert into users(name,age) values(?,?)";
106         int rows = jdbcTemplate.update(sql ,"zhaorng",50);
107         System.out.println(rows);
108     }
109     
110     
111     
112 }
113 
114 class MyRowMapper implements RowMapper<User>{
115     
116     @Override
117     public User mapRow(ResultSet rs ,int num) throws SQLException{
118         //1从结果集里把数据午到
119         String name = rs.getString("name");
120         int age = rs.getInt("age");
121         
122         //2把得到的数据封装到对象里面
123         User user = new User();
124         user.setName(name);
125         user.setAge(age);
126         return user;
127     }
128     
129     
130 }
复制代码

 

posted @   一贴灵  阅读(814)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
学以致用,效率第一
点击右上角即可分享
微信分享提示