hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

JdbcTemplate完成增编削查操纵

2019-11-18杂谈搜奇网27°c
A+ A-

JdbcTemplate引见

为了使 JDBC 越发易于运用,Spring 在 JDBCAPI 上定义了一个笼统层, 以此竖立一个JDBC存取框架,Spring Boot Spring Data-JPA。

作为 SpringJDBC 框架的中心, JDBC 模板的设想目标是为差别范例的JDBC操纵供应模板要领. 每一个模板要领都能掌握全部历程,并许可掩盖历程当中的特定使命。

经由过程这类体式格局,能够在尽量保存灵活性的情况下,将数据库存取的工作量降到最低。

JdbcTemplate要领引见

JdbcTemplate重要供应以下五类要领:

1、execute要领:能够用于实行任何SQL语句,平常用于实行DDL语句;

       Execute、executeQuery、executeUpdate

2、update要领及batchUpdate要领:update要领用于实行新增、修正、删除等语句;batchUpdate要领用于实行批处理相干语句 SQL SERVCER(GO SQL语句 GO) ;

3、query要领及queryForXXX要领:用于实行查询相干语句;

4、call要领:用于实行存储历程、函数相干语句。

JdbcTemplate完成增编削查

JdbcTemplate增加数据

1. 运用设置完成
1.1 建立实体类
public class Account {
    private  Integer accountid;
    private  String accountname;
    private Double balance;

    public Integer getAccountid() {
        return accountid;
    }

    public void setAccountid(Integer accountid) {
        this.accountid = accountid;
    }

    public String getAccountname() {
        return accountname;
    }

    public void setAccountname(String accountname) {
        this.accountname = accountname;
    }

    public Double getBalance() {
        return balance;
    }

    public void setBalance(Double balance) {
        this.balance = balance;
    }
}
实体类

 

1.2 建立Dao
//查询一切一切账户
public List<Account> getAllAccounts();
查询要领

 

.3 建立Dao层完成类并继续JdbcDaoSupport接口

public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao {


    @Override
    public List<Account> getAllAccounts() {
        JdbcTemplate jdbcTemplate = getJdbcTemplate();
        String sql = "select * from  accounts";

        //RowMapper:接口  封装了纪录的行映照关联
        List<Account> lists = jdbcTemplate.query(sql, new RowMapper<Account>() {


            @Override
            public Account mapRow(ResultSet resultSet, int i) throws SQLException {
                //建立Account对象
                Account account = new Account();
                //从ResultSet中解数据保到Accounts对象中
                account.setAccountid(resultSet.getInt("accountid"));
                account.setAccountname(resultSet.getString("accountname"));
                account.setBalance(resultSet.getDouble("balance"));

                return account;
            }
        });

return account;

}
完成查询要领

 

1.4建立Service
//查询一切一切账户
public List<Account> getAllAccounts();
查询要领

 

1.5建立Service层完成类
AccountDao accountDao;
@Override
public List<Account> getAllAccounts() {
    List<Account> allAccounts = accountDao.getAllAccounts();
    return allAccounts;
}
完成查询要领

 

 

1.6 编写applicationContext.xml文件
<!--识别到设置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--设置数据源-->
<!--spring内置的数据源:供应衔接的,不担任治理,运用衔接池-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driver}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
</bean>
<!--构建jdbcTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"></property>
</bean>

<bean id="accountDao" class="cn.spring.accounttest.dao.impl.AccountDaoImpl">
    <property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
<!--Service-->
<bean id="accountService" class="cn.spring.accounttest.service.impl.AccountServiceImpl">
    <property name="accountDao" ref="accountDao"></property>
</bean>
applicationContext.xml

 

1.7编写测试类 
@Test
public void getAllAccount(){
    ApplicationContext  context=new ClassPathXmlApplicationContext("applicationContext.xml");
    //从spring容器中猎取Service对象
    AccountService accountService = (AccountService)context.getBean("accountService");
    List<Account> allAccounts = accountService.getAllAccounts();
    for (Account account:allAccounts) {
        System.out.println("账户名:"+account.getAccountname()+",余额为:"+account.getBalance());
    }
}
查询测试类

 

 

2. 运用注解体式格局完成
2.1 建立实体类

 

实体类

 

 

2.2 建立Dao
查询要领

 

2.3 建立Dao层完成类
@Repository
public class AccountDaoImpl implements AccountDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    Account account = new Account();
    @Override
    public List<Account> getAllAccounts() {

        String sql = "select * from  accounts";

        
        //自动映照
        RowMapper<Account> rowMapper = new BeanPropertyRowMapper<>(Account.class);
        List<Account> query = jdbcTemplate.query(sql, rowMapper);
        for (Account account : query) {
            System.out.println(account);
        }
        return query;
        }
    }
Dao完成类

 

2.4建立Service
查询要领

 

 

2.5建立Service层完成类
完成查询要领

 

2.6编写applicationContext.xml文件
<!--扫描注解:包扫描器-->
<context:component-scan base-package="cn.spring"/>

<!--识别到设置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--设置数据源-->
<!--spring内置的数据源:供应衔接的,不担任治理,运用衔接池-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driver}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
</bean>
<!--构建jdbcTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"></property>
</bean>
applicationContext.xml

 

 

2.7编写测试类
查询测试类

 

 

JdbcTemplate完成增编削操纵

运用注解体式格局完成,设置式同增加操纵

1.建立Dao
//删除账户
public int delAccount(int id);

//增加用户
public int addAccount(Account account);

//修正账户
public int updaAccount(Account account);
增编削要领

 

 

2.建立Dao曾完成类
@Override
 public int delAccount(int id) {

     String sql="delete from accounts where accountid=2";
     int count = jdbcTemplate.update(sql);
     return count;
 }

@Override
 public int addAccount(Account account) {
     String sql="insert into Accounts(accountname,balance) values(?,?)";
     int count = jdbcTemplate.update(sql,account.getAccountname(),account.getBalance());
     return count;
 }

 @Override
 public int updaAccount(Account account) {
     String sql="update accounts set accountname=?,balance=? where accountid=?";
     int count = jdbcTemplate.update(sql, account.getAccountname(),account.getBalance(),account.getAccountid() );
     return count;
 }
增编削要领完成类

 

 

3. 建立Service
增编削要领

 

 

4. 建立Service层完成类
增编削要领完成类

 

 

5. 编写applicationContext.xml文件
applicationContext.xml

 

 

6. 编写测试类
@Test
public void delAccount(){
    ApplicationContext  context=new ClassPathXmlApplicationContext("applicationContext.xml");
    AccountService accountService =(AccountService) context.getBean("accountServiceImpl");
    int i = accountService.delAccount(2);
    if (i>0){
        System.out.println("删除胜利");
    }
}

@Test
public void  addAccount(){
    ApplicationContext  context=new ClassPathXmlApplicationContext("applicationContext.xml");
    AccountService accountServiceImpl = (AccountService) context.getBean("accountServiceImpl");
   Account account=new Account();
   account.setAccountname("刘磊");
   account.setBalance(Double.valueOf(784));
    int count = accountServiceImpl.addAccount(account);
    if (count>0){
        System.out.println("增加胜利");
    }
}

@Test
public void updaAcccount(){
    ApplicationContext  context=new ClassPathXmlApplicationContext("applicationContext.xml");
    AccountService accountServiceImpl = (AccountService) context.getBean("accountServiceImpl");
    Account account=new Account();
    account.setAccountid(10);
    account.setAccountname("刘磊");
    account.setBalance(Double.valueOf(784));
    int count = accountServiceImpl.updaAccount(account);
    if (count>0){
        System.out.println("修正胜利");
    }
}
增编削测试类

 

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
JdbcTemplate完成增编削查操纵

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282034.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>