spring之jdbcTemplate的增删改查操作--不使用配置文件

首先spring针对Java EE三层,都有对应的解决技术。而对于持久化层,都提供了封装,方便操作。如jdbcTemplate对jdbc进行了封装。

下面针对jdbcTemplate的操作进行测试。

—>使用jdbcTemplate的增加,修改,删除,可以使用同一个方法实现,jdbcTemplate.update(sql, Object...args);  sql:指需要执行的SQL语句,后面的是可变参数,表示预处理的参数设置。

—>而使用JbdcTemplate执行查询操作,需要实现RowMapper接口,里面的方法需要我们自己实现,对返回的结果集ResultSet进行封装处理。

           对查询返回单个的数据,比如表中的总数:(使用

 

           对于对象的返回使用这个返回的是对象结果集

           或者使用这个是输入参数的返回的对象结果集

 

以下分各种情况进行数据测试。

1.增加的代码实现如下所示:

 1 package com.gp.jdbc;
 2 
 3 import org.springframework.jdbc.core.JdbcTemplate;
 4 import org.springframework.jdbc.datasource.DriverManagerDataSource;
 5 
 6 public class TemplateDemo {
 7     
 8     //使用jdbcTemplate实现数据的增加
 9     public void add (){
10         DriverManagerDataSource dataSource=new DriverManagerDataSource();
11         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
12         dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
13         dataSource.setUsername("root");
14         dataSource.setPassword("guo");
15         
16         JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
17         String sql="insert into user(name,password) values(?,?)";
18         int result=jdbcTemplate.update(sql, "丽丽","123456");
19         if(result==1){
20             System.out.println("添加成功");
21         }else{
22             System.out.println("添加失败");
23         }
24     }
25     
26 
27    public static void main(String[] args) {
28        TemplateDemo td=new TemplateDemo();
29        td.add();
30    }
31 }

数据表中的结果前后如下所示:

2.下面把id=6的密码改为111111的程序如下所示;对上面的方法稍作修改:

package com.gp.jdbc;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class TemplateDemo1 {
    
    //使用jdbcTemplate实现数据的修改
    public void update (){
        DriverManagerDataSource dataSource=new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
        dataSource.setUsername("root");
        dataSource.setPassword("guo");
        
        JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
        String sql="update user set password=? where name=? ";
        int result=jdbcTemplate.update(sql, "111111","丽丽");
        if(result==1){
            System.out.println("修改成功");
        }else{
            System.out.println("修改失败");
        }
    }
    

   public static void main(String[] args) {
       TemplateDemo1 td=new TemplateDemo1();
       td.update();
   }
}

修改后数据库表中的截图如下所示:

3.实现数据的删除操作,其代码如下所示:

 1 package com.gp.jdbc;
 2 
 3 import org.springframework.jdbc.core.JdbcTemplate;
 4 import org.springframework.jdbc.datasource.DriverManagerDataSource;
 5 
 6 public class TemplateDemo2 {
 7     
 8     //使用jdbcTemplate实现数据的修改
 9     public void delete (){
10         DriverManagerDataSource dataSource=new DriverManagerDataSource();
11         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
12         dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
13         dataSource.setUsername("root");
14         dataSource.setPassword("guo456789");
15         
16         JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
17         String sql="delete from user  where name=? ";
18         int result=jdbcTemplate.update(sql, "丽丽");
19         if(result==1){
20             System.out.println("删除成功");
21         }else{
22             System.out.println("删除失败");
23         }
24     }
25     
26 
27    public static void main(String[] args) {
28        TemplateDemo2 td=new TemplateDemo2();
29        td.delete();
30    }
31 }

执行删除操作后的代码如下所示:

以上的增加,修改和删除都可以使用

 4.实现查询一个表中数据的总数,结果如下所示:

package com.gp.jdbc;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class TemplateDemo3 {
    
    //使用jdbcTemplate实现数据的查询
    public void select (){
        DriverManagerDataSource dataSource=new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
        dataSource.setUsername("root");
        dataSource.setPassword("guo");
        
        JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
        String sql="select count(*) from user ";
        int result=jdbcTemplate.queryForObject(sql, Integer.class);
            System.out.println("查询结果为:"+result);
    }
    

   public static void main(String[] args) {
       TemplateDemo3 td=new TemplateDemo3();
       td.select();
   }
}

5.查询表中的一条数据,测试代码如下所示:

实体类:   

package com.gp.entity;

public class User {
    private String name;
    private String password;

    @Override
    public String toString() {
        return "User [name=" + name + ", password=" + password + "]";
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

测试类:

 1 package com.gp.jdbc;
 2 
 3 import java.sql.ResultSet;
 4 import java.sql.SQLException;
 5 
 6 import org.springframework.jdbc.core.JdbcTemplate;
 7 import org.springframework.jdbc.core.RowMapper;
 8 import org.springframework.jdbc.datasource.DriverManagerDataSource;
 9 
10 import com.gp.entity.User;
11 
12 public class TemplateDemo4 {
13 
14     // 使用jdbcTemplate实现数据的查询
15     public void select() {
16         DriverManagerDataSource dataSource = new DriverManagerDataSource();
17         dataSource.setDriverClassName("com.mysql.jdbc.Driver");
18         dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
19         dataSource.setUsername("root");
20         dataSource.setPassword("guo456789");
21 
22         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
23         String sql = "select * from user where name=? ";
24         User user = (User) jdbcTemplate.queryForObject(sql,
25                 new UserRowMapper(), "张三");
26         System.out.println("查询结果为:" + user);
27     }
28 
29     public static void main(String[] args) {
30         TemplateDemo4 td = new TemplateDemo4();
31         td.select();
32     }
33 }
34 
35 class UserRowMapper implements RowMapper<User> {
36 
37     @Override
38     public User mapRow(ResultSet rs, int rowNum) throws SQLException {
39         User user = new User();
40         user.setName(rs.getString("name"));
41         user.setPassword(rs.getString("password"));
42         return user;
43     }
44 
45 }

运行结果如下所示:

6.使用jdbcTemplate实现结果集的查询,测试代码如下所示:

实体类不变,测试类如下所示:

package com.gp.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import com.gp.entity.User;

public class TemplateDemo5 {

    // 使用jdbcTemplate实现数据的查询
    public void select() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mybatis");
        dataSource.setUsername("root");
        dataSource.setPassword("guo456789");

        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        String sql = "select * from user";
        List<User> users = jdbcTemplate.query(sql, new UserRowMapper1());
        System.out.println("查询结果为:");
        for (User u : users) {
            System.out.println(u);
        }
    }

    public static void main(String[] args) {
        TemplateDemo5 td = new TemplateDemo5();
        td.select();
    }
}

class UserRowMapper1 implements RowMapper<User> {

    @Override
    public User mapRow(ResultSet rs, int rowNum) throws SQLException {
        User user = new User();
        user.setName(rs.getString("name"));
        user.setPassword(rs.getString("password"));
        return user;
    }

}

测试结果为:

 

posted on 2018-03-15 22:14  没有太晚的开始  阅读(320)  评论(0编辑  收藏  举报

导航