当前位置: 首页 > news >正文

男女生做恶心的网站wordpress 配置ssl

男女生做恶心的网站,wordpress 配置ssl,青岛网站建设与管理, 百度一下总结#xff1a;用起来跟 Spring Data JPA 差不多 什么是 JdbcTemplate#xff1f;#xff08;Template译为模板#xff09; Spring 框架对 JDBC 进行封装#xff0c;使用 JdbcTemplate 方便实现对数据库操作 ★ Spring Data JDBC 既不需要JPA、Hibernate这种ORM框架用起来跟 Spring Data JPA 差不多 什么是 JdbcTemplateTemplate译为模板 Spring 框架对 JDBC 进行封装使用 JdbcTemplate 方便实现对数据库操作 ★ Spring Data JDBC 既不需要JPA、Hibernate这种ORM框架但Spring Data还是提供了面向对象的封装。——它相当于是一种轻量化的持久化技术用起来比Spring JDBC更方便但又不像Spring Data JPA那么需要大量注解、复杂它相当于是一个折中。★ Spring Data JDBC的功能 大致包括如下几方面功能 - DAO接口只需继承CrudRepository或PagingAndSortingRepositorySpring Data JDBC能为DAO组件生成实现类、类似于Spring Data JPA。 - Spring Data JDBC支持方法名关键字查询、类似于Spring Data JPA - Spring Data JDBC支持用Query定义查询语句。 - Spring Data JDBC同样支持DAO组件添加自定义的查询方法——————通过添加额外的父接口并为额外的该接口提供实现类Spring Data JDBC就能该实现类中的方法“移植”到DAO组件中。 - 一般不支持样本查询也不支持Specification查询。★ Spring Data JDBC VS Spring Data JPA Spring Data JDBC相当于“轻量化”的Spring Data JPA。 Spring Data JDBC的功能不如Spring Data JPA强大毕竟它底层没有ORM框架的加持。 Spring Data JDBC也不需要处理复杂的ORM映射、实体对象的生命周期管理等 因此Spring Data JDBC用起来更简单。 ——Spring Data JDBC有点类似MyBatis★ Spring Data JDBC映射规则 Spring Data JDBC默认的处理方式是“约定优于配置”的同名映射- 程序操作User对象Spring Data JDBC对应于操作user表。 - 对于id数据列自动被映射到对象的id属性。▲Spring Data JDBC的注解- Table映射自定义的表名。非JPA注解 - Column映射自定义的列名非JPA注解 - Id修饰标识属性非JPA注解 - PersistenceConstructor修饰主构造器。当你的映射类中有多个构造器时你希望Spring Data JDBC用哪个构造器来创建对象就用该注解来修饰该构造器。★ Spring Data JDBC操作数据库方法 A. 全自动方法名关键字查询。B. 半自动Query指定查询语句。C. 全手动自己定义查询方法即可用DataSource也用JdbcTemplate。★ Spring Data JDBC的编程步骤 1定义映射类为Java类添加Table、Column、Id和 PersistenceConstructor2让DAO接口继承CrudRepository或PagingAndSortingRepository。3在DAO接口中定义方法名关键字查询、Query查询、完全自定义查询需要额外的接口和实现类代码演示 其实跟 JPA 差不多 User 类 UserDao接口 根据方法名关键字查询---------全自动不用自己写sql的 也有通过注解 Query 进行查询的 —自己定义查询语句-----半自动可以自己写sql语句 也可以自定义Dao接口用来自己写sql和封装数据 自定义接口和实现类来实现数据的查询 一个基于 DataSource 一个基于 jdbcTemplate UserDaoTest 测试 测试类 application.properties pom.xml 一个是 spring data jdbc 的依赖 一个是 mysql 的依赖 创建项目的时候这个 mysql 的依赖老是不完整所以要记录下 完整代码 User package cn.ljh.app.domain;import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.PersistenceConstructor; import org.springframework.data.relational.core.mapping.Column; import org.springframework.data.relational.core.mapping.Table;/*** author JH*/Data //此处不能添加JPA注解因为此项目没有用到 JPA Table(user_inf) public class User {Column(value user_id)Idprivate Integer id;private String name;private String password;private int age;/*** PersistenceConstructor* 修饰主构造器。当你的映射类中有多个构造器时* 你希望Spring Data JDBC用哪个构造器来创建对象就用该注解来修饰该构造器*/PersistenceConstructorpublic User(){}public User(Integer id, String name, String password, int age){this.id id;this.name name;this.password password;this.age age;}Overridepublic String toString(){return User{ id id , name name \ , password password \ , age age };} } UserDao package cn.ljh.app.dao;import cn.ljh.app.domain.User; import org.springframework.data.jdbc.repository.query.Modifying; import org.springframework.data.jdbc.repository.query.Query; import org.springframework.data.repository.CrudRepository;import java.util.List;public interface UserDao extends CrudRepositoryUser,Integer,CustomUserDao {// 继承 CrudRepository 接口后就已经有通用的 CRUD 操作无需自己来书写这些方法//方法名关键字查询---------全自动//根据名字模糊查询ListUser findByNameLike(String namePattern);//根据年龄大小进行范围查询ListUser findByAgeGreaterThan(int startAge);ListUser findByAgeLessThan(int age);//根据年龄区间进行范围查询ListUser findByAgeBetween(int startAge , int endAge);//Query 查询 ---自己定义查询语句-----半自动//rowMapperClass 或 rowMapperRef 是用来做自定义映射查询出来的User对象的数据映射到Student对象的属性上面去都可以因为是自定义的。//根据密码模糊查询Query(select * from user_inf where password like :passwordPattern)ListUser findBySql(String passwordPattern);//根据年龄范围修改名字Query(update user_inf set name :name where age between :startAge and :endAge)Modifying //更改数据库数据需要用到这个注解int updateNameByAge(String name , int startAge , int endAge);}CustomUserDao package cn.ljh.app.dao;import cn.ljh.app.domain.User;import java.util.List;/*** author JH*/ //自己定义的接口用来实现全手动的查询 public interface CustomUserDao {//通过名字进行模糊查询使用 dataSourceListUser customQueryUsingConnection(String namePattern);//通过名字进行模糊查询使用 jdbcTemplateListUser customQueryUsingTemplate(String namePattern); }CustomUserDaoImpl package cn.ljh.app.dao.impl;import cn.ljh.app.dao.CustomUserDao; import cn.ljh.app.domain.User; import lombok.SneakyThrows; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource; import java.sql.Array; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List;/*** author JH*/ public class CustomUserDaoImpl implements CustomUserDao {private DataSource dataSource;private JdbcTemplate jdbcTemplate;//通过有参构造器进行依赖注入public CustomUserDaoImpl(DataSource dataSource, JdbcTemplate jdbcTemplate){this.dataSource dataSource;this.jdbcTemplate jdbcTemplate;}SneakyThrowsOverridepublic ListUser customQueryUsingConnection(String namePattern){//创建数据库连接Connection connection this.dataSource.getConnection();//创建 PreparedStatement 预处理语句PreparedStatement pstmt connection.prepareStatement(select * from user_inf where name like ?);pstmt.setString(1, namePattern);//执行查询ResultSet rs pstmt.executeQuery();ListUser userList new ArrayList();//遍历结果集封装对象while (rs.next()){userList.add(new User(rs.getInt(user_id),rs.getString(name),rs.getString(password),rs.getInt(age)));}return userList;}Overridepublic ListUser customQueryUsingTemplate(String namePattern){//直接执行查询ListUser userList this.jdbcTemplate.query(select user_id as id,name ,password,age from user_inf where name like ?,//把查询的结果封装起来new BeanPropertyRowMapper(User.class),namePattern);return userList;} }UserDaoTest package cn.ljh.app;import cn.ljh.app.dao.UserDao; import cn.ljh.app.domain.User; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.ValueSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.jdbc.repository.query.Modifying; import org.springframework.data.jdbc.repository.query.Query; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional;import java.util.List; import java.util.Optional;/*** author JH*/ SpringBootTest(webEnvironment SpringBootTest.WebEnvironment.NONE) public class UserDaoTest {Autowiredprivate UserDao userDao;// 继承 CrudRepository 接口后就已经有通用的 CRUD 操作无需自己来书写这些方法//添加user对象ParameterizedTestCsvSource({aa,xxx,2, bb,xxx,3})public void testSave(String name, String password, int age){//没有idsave就是添加User user userDao.save(new User(null, name, password, age));System.err.println(user);}//根据id修改对象ParameterizedTestCsvSource({13,aaa,xxxx,22})public void testUpdate(Integer id, String name, String password, int age){//有idsave就是修改User user userDao.save(new User(id, name, password, age));System.err.println(user);}//根据id删除用户对象ParameterizedTestValueSource(ints {14})public void testDelete(Integer id){userDao.deleteById(id);}//根据id查询对象ParameterizedTestValueSource(ints {1})public void testFindById(Integer id){OptionalUser user userDao.findById(id);}//方法名关键字查询---------全自动//根据名字模糊查询ParameterizedTestValueSource(strings {孙%, %精})public void testFindByNameLike(String namePattern){ListUser users userDao.findByNameLike(namePattern);users.forEach(System.err::println);}//根据年龄大小进行范围查询ParameterizedTestValueSource(ints {500, 10})public void testFindByAgeGreaterThan(int startAge){ListUser users userDao.findByAgeGreaterThan(startAge);users.forEach(System.err::println);}//根据年龄大小进行范围查询ParameterizedTestValueSource(ints {20})public void testFindByAgeLessThan(int age){ListUser users userDao.findByAgeLessThan(age);users.forEach(System.err::println);}//根据年龄区间进行范围查询ParameterizedTestCsvSource({15,20, 500,1000})public void testFindByAgeBetween(int startAge, int endAge){ListUser users userDao.findByAgeBetween(startAge, endAge);users.forEach(System.err::println);}//Query 查询 ---自己定义查询语句-----半自动//rowMapperClass 或 rowMapperRef 是用来做自定义映射查询出来的User对象的数据映射到Student对象的属性上面去都可以因为是自定义的。//根据密码模糊查询ParameterizedTestValueSource(strings {niu%, %3})public void testFindBySql(String passwordPattern){ListUser users userDao.findBySql(passwordPattern);users.forEach(System.err::println);}//根据年龄范围修改名字ParameterizedTestCsvSource({牛魔王aa,800,1000})TransactionalRollback(false)public void testUpdateNameByAge(String name, int startAge, int endAge){int i userDao.updateNameByAge(name, startAge, endAge);}//自己定义的接口用来实现全手动的查询//通过名字进行模糊查询使用 dataSourceParameterizedTestValueSource(strings {孙%})public void testCustomQueryUsingConnection(String namePattern){ListUser users userDao.customQueryUsingConnection(namePattern);users.forEach(System.err::println);}//通过名字进行模糊查询使用 jdbcTemplateParameterizedTestValueSource(strings {孙%})public void testCustomQueryUsingTemplate(String namePattern){ListUser users userDao.customQueryUsingTemplate(namePattern);users.forEach(System.err::println);} } application.properties spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/springboot?serverTimezoneUTC spring.datasource.usernameroot spring.datasource.password123456pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.4.5/version/parentgroupIdcn.ljh/groupIdartifactIdSpring_Data_JDBC/artifactIdversion1.0.0/versionnameSpring_Data_JDBC/namepropertiesjava.version11/java.version/propertiesdependencies!-- 导入 spring data jdbc --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jdbc/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project
http://wiki.neutronadmin.com/news/5857/

相关文章:

  • 做笑话网站钱包网站建设
  • 广东外贸网站建设企业盘锦做网站价格
  • 网站前置审批怎么做手机移动端网站
  • 国外主题网站济南正宗网站建设平台
  • 学做花蛤的网站网站架构基本知识
  • 怎么创建网站详细流程网站开发 改进
  • joomla 企业网站模板河南平台网站建设价位
  • 网站如何做移动网站服务好质量好的网站制作
  • 青岛胶东建设国际机场网站photoshop正版软件多少钱
  • 做网站需要招什么职位东山网站建设
  • 磁力链接 网站怎么做的搜狐视频
  • 网站建设的有什么需求江苏省造价信息工程网
  • 如何建设和优化一个网站步骤中山网站建设开发
  • 湖北建设厅政务网站app免费版下载安装
  • 树莓派做网站什么是网络营销?与电商营销有什么区别?
  • 网站优化细节网站建设项目推文
  • 无锡建设网站的公司简介wordpress 去掉标题
  • php网站模版音乐网站整站程序
  • 网站建设与代运营介绍网站开发 设计文档
  • 沈阳微网站建设网站建设资金的请示
  • 站群系统有哪些做网站 中企动力
  • 网站备案及管理的授权书php网站 上传
  • 关于营销方面的网站北京网站建设公司收购
  • 一起做网店官方网站美丽乡村 村级网站建设
  • 太原网站建设找山西云起时个人网站建设方案模板
  • 可以先做网站后备案么网站开发经营范围
  • 灵犀科技+网站开发佼佼者忻府网站建设排名
  • 江苏省建设类高工申报网站什么是建设企业网站
  • 自己建网站做外贸泉州关键词优化
  • 莱芜网站建设价格网站内容需要备案吗