springData__jpa对数据库进行操作---dao接口和 测试类

一、dao接口

采用方法命名规则,对数据库进行操作

前提是接口必须继承 JPARepository类

package cn.dzl.jpa.dao;

import cn.dzl.jpa.entity.Customer;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface CustomerDao extends JpaRepository<Customer,Long> {
    //方法命名规则
    public Customer findByCustId(long id);
    //模糊查询
    public List<Customer>findByCustNameLike(String CustName);
    //删除
    public void deleteByCustId(long id);
    //多条件模糊查询
    public List<Customer>findByCustNameLikeAndCustAddressLike(String CustName,String CustAddress);
    //查数
    public long count();
    //通过姓名查找
    public List<Customer> findByCustName(String custName);
}

  二、测试类

import cn.dzl.jpa.dao.CustomerDao;
import cn.dzl.jpa.entity.Customer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Commit;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class JpaTest {
    @Autowired
    CustomerDao customerDao;
    @Test
    public void findById(){
        Customer customer = customerDao.findByCustId(6L);
        System.out.println(customer);
    }
    //模糊查询
    @Test
    public void findByCustNameLike(){
        List<Customer> customerList = customerDao.findByCustNameLike("%aa%");
        for (Customer customer : customerList) {
            System.out.println(customer);
        }
    }
    //删除
    @Test
    public void deleteByCustId(){
        customerDao.deleteByCustId(5L);
        Customer customer = customerDao.findByCustId(5L);
        if (customer==null){
            System.out.println("删除成功");
        }else{
            System.out.println("删除失败");
        }
    }

    //模糊查询
    @Test
    public void findByCondition(){
        List<Customer> customerList = customerDao.findByCustNameLikeAndCustAddressLike("%哈%", "%金%");
        for (Customer customer : customerList) {
            System.out.println(customer);
        }
    }
    //查数
    @Test
    public void count(){
        long count = customerDao.count();
        System.out.println(count);

    }
    //保存
    @Test
    public void save(){
        Customer customer = new Customer();
        customer.setCustName("aa");
        customer.setCustPhone("123456");
        customer.setCustLevel("5");
        customer.setCustAddress("郑州");
        customer.setCustSource("未知");
        customerDao.save(customer);
        List<Customer> customerList = customerDao.findByCustName("aa");
        if (customerList!=null){
            System.out.println("添加成功");
            for (Customer customer1 : customerList) {
                System.out.println(customer1);
            }
        }else{
            System.out.println("添加失败");
        }

    }
}

  

原文地址:https://www.cnblogs.com/Hubert-dzl/p/11652464.html

时间: 2024-10-13 18:24:26

springData__jpa对数据库进行操作---dao接口和 测试类的相关文章

Dao接口和实现类以及Service接口和实现类代码抽取

紧接着上次无线点餐项目的文档,我们进行Dao层抽取. 6.Dao接口以及实现类代码抽取 对于BoardDao和CuisineDao的处理接口和实现类,除了定义自己的特有方法外,其他基本功能的CRUD方法都一样,只是操作的实体对象不一样.为了代码的复用,简化代码,我们可以将公共的CRUD方法提取到BaseDao中,只需要实现接口即可. 同理, 不同的实现类,实现CRUD相同的业务逻辑的时, 除了操作的实体不同,其他都是相同的, 所以我们可以把相同的业务逻辑实现,抽取出来,放到BaseSericeI

DAO接口及实现类

DAO接口中定义了所有的用户操作,如添加记录.删除记录及查询记录. 1 package chapter13; 2 import java.util.*; 3 public interface UserDAO { 4 public void insert(User user) throws Exception; 5 public void update(User user) throws Exception; 6 public void delete(int userid) throws Exce

使用动态代理实现dao接口

使用动态代理实现dao接口的实现类 MyBatis允许只声明一个dao接口,而无需写dao实现类的方式实现数据库操作.前提是必须保证Mapper文件中的<mapper>标签的namespace属性值必须要和dao接口的类路径一致,MyBatis容器会自动通过动态代理生成接口的实现类. Mapper.java 1 package cn.mybatis.dao; 2 3 import cn.mybatis.domain.Student; 4 5 public interface StudentMa

使用Java实现数据库编程—08 DAO 模式

1.        数据持久化:将程序中的数据在瞬时状态和持久状态间转换的机制即为数据持久化: 2.        持久化的实现方式:数据库.普通文件.XML文件: 3.        JDBC封装:采用面向接口编程,可以降低代码间的耦合性: 为了提高代码的维护性和扩展性,我们使用JDBC进行封装数据,: 先定义统一的API,将操作数据的代码抽象到接口中,业务逻辑代码只需要调用这些接口的实现类的对象,就可以实现对数据的访问了, 从而隔离实现的细节,采用面向接口编程,可以降低代码间的耦合度,提高代

程序中数据库的操作历史和对数据库操作的实体类注意事项

稍微了解一下程序中数据库操作历史吧! 1.首先是JDBC连接 2.c3p0 3.JPA JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 4.hibernate 实现了全自动的ORM(对象关系映射) 数据持久化:用户只需要操作对象即可,内部将对象最终转化为sql. 结果集映射:将sql执行后的结果自动的映射为对象 缺点: 耗费内存 会形成冗余的sql,执行的效率较低

perl脚本中对数据库的操作

perl中DBI模块为mysql数据库相关操作的接口,首先需要在环境中安装DBI模块.perl处理数据库操作的大致步骤如下:#声明使用DBI模块use DBI;#设置数据库连接参数,指定连接数据库名,数据库所在服务器ip地址,连接用户名,密码# db_name为要连接的数据库名,ip为数据库所在服务器ip地址my $database='DBI:mysql:database=db_name;host=ip';my $user='user_name';my $pw='password';#连接数据库

Android开发之通过Android的API对sqlite数据库的操作以及数据库事务的练习

一.通过Android的API对sqlite数据库的操作 通过已有的ContentValues类,实例一个对象value来调用其中内部的方法来操作sqlite数据库 代码: package com.example.databasedemo; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sql

阿里面试题:Mybatis中的Dao接口和XML文件里的SQL是如何建立关系的?

一.解析XML首先,Mybatis在初始化SqlSessionFactoryBean的时候,找到mapperLocations路径去解析里面所有的XML文件,这里我们重点关注两部分.1.创建SqlSourceMybatis会把每个SQL标签封装成SqlSource对象.然后根据SQL语句的不同,又分为动态SQL和静态SQL.其中,静态SQL包含一段String类型的sql语句:而动态SQL则是由一个个SqlNode组成. 假如我们有这样一个SQL: <select id="getUserB

接口安全测试

一.后台接口分类 1.接口类别:restful(json) soap(xml) 2.协议 :http https(ssl) 3.restful接口请求类型 get操作是安全的 post的操作是不安全的 同put delete也是不安全的 4.现状和问题 大部分APP的接口都采用restful架构,restful最重要的一个设计原则就是客户端与服务端的交互在请求之间是无状态的.大部分都采用token的认证方式. token分别在两台手机上登陆微信 二.接口安全设计原则 1.接口类型尽量使用http