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

沈阳网站关键词wordpress中标签作用

沈阳网站关键词,wordpress中标签作用,wordpress使用百度云存储,自己做自媒体在哪个网站比较好一#xff0c;使用JdbcTemplate访问MySQL数据库 1#xff0c;确认本地已正确安装mysql 按【winr】快捷键打开运行#xff1b;输入services.msc#xff0c;点击【确定】#xff1b;在打开的服务列表中查找mysql服务#xff0c;如果没有mysql服务#xff0c;说明本机没有…一使用JdbcTemplate访问MySQL数据库 1确认本地已正确安装mysql 按【winr】快捷键打开运行输入services.msc点击【确定】在打开的服务列表中查找mysql服务如果没有mysql服务说明本机没有安装mysql按如下方式进行安装 1点击mysql安装包下载链接https://dev.mysql.com/downloads/mysql/点击直接下载即可 2解压后在bin目录同级下创建一个文件命名为my.ini 内容如下 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 ---这里输入你安装的文件路径---- basedirD:\mysql\mysql_install # 设置mysql数据库的数据的存放目录 datadirD:\mysql\data # 允许最大连接数 max_connections200 # 允许连接失败的次数。 max_connect_errors10 # 服务端使用的字符集默认为utf8 character-set-serverutf8 # 创建新表时将使用的默认存储引擎 default-storage-engineINNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_pluginmysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-setutf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port3306 default-character-setutf8(3) 打开cmd进入mysql的bin文件下(D:\mysql\mysql-8.0.16-winx64)执行命令 mysqld --initialize --console注意安装mysql 安装完成后Mysql会有一个随机初始密码一定要保存 如果exe安装时有设置密码那就用那个密码。 4接下来执行以下命令 // 执行mysql安装 mysqld --install mysql// 使用命令提示符启动MySQL服务 net start mysql//进入mysql回车后输入上面安装时保存的初始密码 mysql -uroot -p//修改密码为1234 ALTER USER rootlocalhost IDENTIFIED BY 1234;// 查看MySQL服务状态 status//quit退出mysql后用以下命令也可以查询 mysql -u root -p -estatus; 5配置环境变量 2配置IDEA访问MySQL数据库 1打开cmd进入mysql的bin目录执行以下命令创建数据库 //进入mysql的bin目录 D: cd mysql\mysql-8.0.16-winx64\bin//登录mysql注意-p后面无空格 mysql -uroot -p1234// 创建 mydatabasecreate database mydatabase;// 查看databasesshow databases;// 切换到mydatabaseuse mydatabase;// 创建table t_user 有id、username和password三项CREATE TABLE t_user (id int NOT NULL AUTO_INCREMENT COMMENT 用户id,username varchar(100) DEFAULT NULL,password varchar(100) DEFAULT NULL,PRIMARY KEY (id)) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT用户表;//查看tablesshow tables;// 插入一项INSERT INTO t_user VALUES(1,admin,123456);//查看表内容SELECT * FROM t_user;2idea中在pom.xml中加入依赖 !-- 添加mysql依赖 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/versionscoperuntime/scope!-- MySQL5.x时请使用5.x的连接器(cmd执行mysql -V确定)groupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.45/version--/dependency!-- 添加jdbc依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency!-- 添加junit依赖 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.20/version/dependency3在src/main/resources/application.properties中配置数据源信息 spring.datasource.urljdbc:mysql://localhost:3306/mydatabase spring.datasource.usernameroot spring.datasource.password1234 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # mysql5: spring.datasource.driver-class-namecom.mysql.jdbc.Driver 配置idea连接查看数据库 1View- Tool Windows - Database进入 如果社区版没有Database搜索 file-settings-plugins安装Database Navigator也是一样的。通过View- Tool Windows - DB Browser进入 2在Database视图中点击“”号创建Mysql 3选择要连接的数据库Test Connection测试 4打开可以看到对应的表项 3使用JdbcTemplate修改MySQL数据库 新建实体类 如下 User类 package com.example.demospringboot;import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor public class User {private int id;private String username;private String password; }UserService类 package com.example.demospringboot;import java.util.List;public interface UserService {/*** 新增一个用户** param id* param username* param password*/public void addUser(int id, String username, String password);/*** 删除一个用户* param id*/public void delUser(int id);/*** 根据id查询用户** param id* return*/ListUser getUserById(int id);/*** 查询全部用户* return*/public ListUser getUserAll();/*** 删除所有用户*/public int delUserAll(); } UserServiceImpl类 JDBCTemplate 提供3个操作数据的方法 execute 直接执行 sql 语句 update 进行新增、修改、删除操作 query 查询操作 package com.example.demospringboot;import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service;import java.util.List;Service public class UserServiceImpl implements UserService {private JdbcTemplate jdbcTemplate;public UserServiceImpl(JdbcTemplate jdbcTemplate) {this.jdbcTemplate jdbcTemplate;}Overridepublic void addUser(int id, String username, String password) {String sql INSERT INTO t_user VALUES(?,?,?);jdbcTemplate.update(sql, id, username, password);System.out.println(id username password);}Overridepublic void delUser(int id) {String sql delete from t_user where id?;jdbcTemplate.update(sql, id);}Overridepublic ListUser getUserById(int id) {String sql select ID, USERNAME, PASSWORD from t_user where id ?;ListUser users jdbcTemplate.query(sql, (resultSet, i) - {User user new User();user.setId(resultSet.getInt(ID));user.setUsername(resultSet.getString(USERNAME));user.setPassword(resultSet.getString(PASSWORD));return user;}, id);return users;}Overridepublic ListUser getUserAll() {String sql select * from t_user;return jdbcTemplate.query(sql, new BeanPropertyRowMapper(User.class));}Overridepublic int delUserAll() {return jdbcTemplate.update(delete from t_user);} } test用例 package com.example.demospringboot;import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;import java.util.List;RunWith(SpringRunner.class) SpringBootTest public class DemospringbootApplicationTests {Autowiredprivate UserService userService;Beforepublic void setUp() {// 准备清空user表userService.delUserAll();}Testpublic void test() throws Exception {// 插入5个用户userService.addUser(1, Tom, 1000);userService.addUser(2, Mike, 1111);userService.addUser(3, Didispace, 3000);userService.addUser(4, Oscar, 2111);userService.addUser(5, Linda, 1711);// 查询id为4的用户判断名字是否为OscarListUser userList userService.getUserById(4);Assert.assertEquals(Oscar, userList.get(0).getUsername());// 查数据库应该有5个用户Assert.assertEquals(5, userService.getUserAll().size());// 删除两个用户userService.delUser(2);userService.delUser(3);// 查数据库应该有3个用户Assert.assertEquals(3, userService.getUserAll().size());} }执行用例成功查看数据库符合预期 添加控制器 UserController package com.example.demospringboot;import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController RequestMapping(/user) Log4j2 public class UserController {private JdbcTemplate jdbcTemplate;Autowiredpublic void setJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate jdbcTemplate;}// 返回所有用户GetMapping(/get)public ListUser getUserAll() {String sql SELECT id,username,password FROM t_user;return jdbcTemplate.query(sql, new BeanPropertyRowMapper(User.class));}/*** 添加用户*/GetMapping(/add)public void addUser() {String sql INSERT INTO t_user VALUES(?,?,?);int row jdbcTemplate.update(sql,10, Jacky, 123456);log.info(保存用户成功!保存个数: row);} }打开页面 http://localhost:8080/user/add http://localhost:8080/user/get 回显如下 [{id:1,username:Tom,password:1000},{id:4,username:Oscar,password:2111},{id:5,username:Linda,password:1711},{id:10,username:Jacky,password:123456}]总结 关于Spring所提供的JdbcTemplate的用法就是这些Spring集成JdbcTemplate的方法也是比较简单的整体就是先引入依赖在配置数据库的连接然后使用jdbcTemplate这个类就可以了JdbcTemplate 类中就已经封装了大部分对于数据库的操作。 简单是简单但是这个框架在企业级项目中应用是比较少的一般用于对于操作数据库的要求不高的项目因为他就是对jdbc的简单封装所有的sql都是写入到代码中维护性差看起来也比较乱。后边我们会继续介绍比较主流的DAO层框架Mybatis和JPA的用法。希望本篇文章对大家有所帮助。 问题记录 1编译运行报错如下 Description: Parameter 0 of constructor in com.example.DemoSpringBoot.UserServiceImpl required a bean of type org.springframework.jdbc.core.JdbcTemplate that could not be found解决方案 1推荐依赖spring-boot-starter-jdbc 而不是spring-jdbc dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency2引入Druid依赖阿里巴巴所提供的数据源 !-- 引入Druid依赖阿里巴巴所提供的数据源 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.13/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.47/version/dependencyappliction.properties: spring.datasource.typecom.alibaba.druid.pool.DruidDataSource2当进行需要连接数据库的操作时控制台会报下面这种红色警报 Sat Jul 09 14:57:03 CST 2022 WARN: Establishing SSL connection without servers identity verification is not recommended. According to MySQL 5.5.45, 5.6.26 and 5.7.6 requirements SSL connection must be established by default if explicit option isnt set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to false. You need either to explicitly disable SSL by setting useSSLfalse, or set useSSLtrue and provide truststore for server certificate verification.解决方法 1 在配置文件中的连接数据库的URL后面添加 useSSLfalse spring.datasource.urljdbc:mysql://localhost:3306/mydatabase?useSSLfalse方案二可能是连接数据库的驱动版本问题(5.1.46)更换成其他版本即可。 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.46/version /dependency调整为 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.0.8/version /dependency3报错Web server failed to start. Port 8080 was already in use. cmd命令如下 参考https://blog.didispace.com/spring-boot-learning-21-3-1/ 二、使用MyBatis访问MySQL 添加依赖 !-- 添加mybatis依赖 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.1.1/version/dependency!-- 添加jdbc依赖dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency--properties跟之前一致 spring.datasource.urljdbc:mysql://localhost:3306/mydatabase spring.datasource.usernameroot spring.datasource.password1234 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver //mysql5: spring.datasource.driver-class-namecom.mysql.jdbc.Driver User类跟之前一致 User类 package com.example.demospringboot;import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor public class User {private int id;private String username;private String password; }实现UserMapper接口 package com.example.demospringboot;import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper;Mapper public interface UserMapper {Select(SELECT * FROM t_user WHERE NAME #{name})User findByName(Param(name) String name);Insert(INSERT INTO t_user(ID USERNAME, PASSWORD) VALUES(#{id}, #{username}, #{password}))int insert(Param(id) Integer id, Param(username) String username, Param(password) String password);Update(UPDATE t_user SET password#{password} WHERE id#{id})void updatePassword(User user);Delete(DELETE FROM t_user WHERE id #{id})void deleteById(int id); }test用例 package com.example.demospringboot;import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.annotation.Rollback;import org.springframework.transaction.annotation.Transactional;RunWith(SpringRunner.class) SpringBootTest Transactional public class DemospringbootApplicationTests {Autowired()private UserMapper userMapper;TestRollbackpublic void testUserMapper() throws Exception {// insert一条数据并select出来验证userMapper.insert(10, Bob, 12345);User u userMapper.findByName(Bob);Assert.assertEquals(10, u.getId());// update一条数据并select出来验证u.setPassword(54321);userMapper.updatePassword(u);u userMapper.findByName(Bob);Assert.assertEquals(54321, u.getPassword());// 删除这条数据并select验证userMapper.deleteById(u.getId());u userMapper.findByName(Bob);Assert.assertEquals(null, u);} } 参考https://blog.didispace.com/spring-boot-learning-21-3-5/ 三、使用Spring Data JPA访问MySQL 在之前我们使用JDBC或是Mybatis来操作数据通过直接编写对应的SQL语句来实现数据访问然而当我们有一定的开发经验之后不难发现在实际开发过程中对数据库的操作大多可以归结为“增删改查”。为了解决这些大量枯燥的数据操作语句诞生了非常多的优秀框架比如JPA规范的框架一般最常用的Hibernate。 JPAJava Persistence API和JDBC类似也是官方定义的一组接口但是它相比传统的JDBC它是为了实现ORM而生的即Object-Relationl Mapping它的作用是在关系型数据库和对象之间形成一个映射这样我们在具体的操作数据库的时候就不需要再去和复杂的SQL语句打交道只要像平时操作对象一样操作它就可以了。 而实现JPA规范的框架一般最常用的就是Hibernate它是一个重量级框架学习难度相比Mybatis也更高一些而SpringDataJPA也是采用Hibernate框架作为底层实现并对其加以封装。 1在pom.xml中添加相关依赖加入以下内容 !-- 添加jpa依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependencydependencygroupIdjavax.persistence/groupIdartifactIdpersistence-api/artifactIdversion1.0.2/version/dependency2在application.properties中配置 spring.datasource.urljdbc:mysql://localhost:3306/mydatabase spring.datasource.usernameroot spring.datasource.password1234 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # mysql5: spring.datasource.driver-class-namecom.mysql.jdbc.Driverspring.jpa.properties.hibernate.hbm2ddl.autocreate-dropspring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置属性其主要作用是自动创建、更新、验证数据库表结构。该参数的几种配置如下 create每次加载hibernate时都会删除上一次的生成的表然后根据你的model类再重新来生成新表哪怕两次没有任何改变也要这样执行这就是导致数据库表数据丢失的一个重要原因。create-drop每次加载hibernate时根据model类生成表但是sessionFactory一关闭,表就自动删除。update最常用的属性第一次加载hibernate时根据model类会自动建立起表的结构前提是先建立好数据库以后加载hibernate时根据model类自动更新表结构即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后表结构是不会被马上建立起来的是要等应用第一次运行起来后才会。validate每次加载hibernate时验证创建数据库表结构只会和数据库中的表进行比较不会创建新表但是会插入新值。 3创建一个User实体通过ORM框架其会被映射到数据库表中由于配置了hibernate.hbm2ddl.auto在应用启动的时候框架会自动去数据库中创建对应的表。 package com.example.demospringboot;import lombok.Data; import lombok.NoArgsConstructor; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id;Entity Data NoArgsConstructor public class User {IdGeneratedValueprivate Integer id;private String username;private String password;public User(Integer id, String username, String password) {this.id id;this.username username;this.password password;} }Entity注解标识了User类是一个持久化的实体 Data和NoArgsConstructor是Lombok中的注解。用来自动生成各参数的Set、Get函数以及不带参数的构造函数。如果您对Lombok还不了解可以看看这篇文章Java开发神器Lombok的使用与原理 Id和GeneratedValue用来标识User对应对应数据库表中的主键 4创建数据访问接口 下面针对User实体创建对应的UserRepository 接口实现对该实体的数据访问如下代码 在Spring Data JPA中只需要编写类似这样的接口就可实现数据访问。不再像我们以往编写了接口时候还需要自己编写接口实现类直接减少了我们的文件清单。 package com.example.demospringboot;import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param;public interface UserRepository extends JpaRepositoryUser, Integer {User findByUsername(String username);User findByUsernameAndPassword(String username, String password);Query(from User u where u.username:username)User findUser(Param(username) String username);}下面对UserRepository做一些解释该接口继承自JpaRepository通过查看JpaRepository接口的API文档可以看到该接口本身已经实现了创建save、删除delete、查询findAll、findOne等基本操作的函数因此对于这些基础操作的数据访问就不需要开发者再自己定义。 在我们实际开发中JpaRepository接口定义的接口往往还不够或者性能不够优化我们需要进一步实现更复杂一些的查询或操作。由于本文重点在Spring Boot中整合spring-data-jpa在这里先抛砖引玉简单介绍一下spring-data-jpa中让我们兴奋的功能后续再单独开篇讲一下spring-data-jpa中的常见使用。 在上例中我们可以看到下面两个函数 User findByUsername(String username);User findByUsernameAndPassword(String username, String password);它们分别实现了按username查询User实体和按username和id查询User实体可以看到我们这里没有任何类SQL语句就完成了两个条件查询方法。这就是Spring-data-jpa的一大特性通过解析方法名创建查询。例如findByUsername(String username)方法会自动生成查询语句SELECT * FROM user WHERE username ?。 除了通过解析方法名来创建查询外它也提供通过使用Query 注解来创建查询您只需要编写JPQL语句并通过类似“:username”来映射Param指定的参数就像例子中的findUser函数一样。 5单元测试用例 package com.example.demospringboot;import lombok.extern.slf4j.Slf4j; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;import java.util.List;Slf4j RunWith(SpringRunner.class) SpringBootTest public class DemospringbootApplicationTests {Autowiredprivate UserRepository userRepository;Testpublic void test() throws Exception {// 创建5条记录userRepository.save(new User(10,AAA,1000));userRepository.save(new User(20, BBB, 2000));userRepository.save(new User(30,CCC, 3000));userRepository.save(new User(40,DDD, 4000));userRepository.save(new User(50, EEE, 5000));// 测试findAll, 查询所有记录Assert.assertEquals(5, userRepository.findAll().size());// 测试findByName, 查询姓名为EEE的UserAssert.assertEquals(5000, userRepository.findByUsername(EEE).getPassword());// 测试findUser, 查询姓名为EEE的UserAssert.assertEquals(5000, userRepository.findUser(EEE).getPassword());// 测试findByUserNameAndPassword, 查询姓名为EEE并且密码为5000的UserAssert.assertEquals(EEE, userRepository.findByUsernameAndPassword(EEE, 5000).getUsername());// 测试删除姓名为AAA的UseruserRepository.delete(userRepository.findByUsername(AAA));// 测试findAll, 查询所有记录, 验证上面的删除是否成功Assert.assertEquals(4, userRepository.findAll().size());} } 执行后可以看到mysql多了名为user的table并且其中添加了 4 rows 参考https://blog.didispace.com/spring-boot-learning-21-3-4/
http://www.pierceye.com/news/824827/

相关文章:

  • 国外优秀摄影作品网站互联网项目推广方案
  • icp网站备案查询美容整形网站建设
  • 广州网站建设八爪鱼湖南网络公司排名
  • 网站公司名称大全龙元建设集团有限公司网站
  • 网站开发技术可行性分析邢台建设企业网站
  • 有一个网站 人物模型可以做各种动作沈阳军成网站建设
  • h5移动网站开发南京企业自助建站系统
  • 开发一个企业网站报价wordpress副标题字数
  • 芜湖哪家公司做网站不错江宁网站建设方案
  • 做网站公司赚钱吗?百度搜索下载
  • 手机购物网站模版企业信息系统查询系统官网江苏
  • 礼品行业网站建设北京网站设计精选刻
  • 六安论坛网站WordPress ftp 媒体库子目录
  • 网站域名com和cn应用商店免费下载
  • 建设营销型网站多少钱比较好的网站建设网站
  • 学校网站的建设需求搜索引擎优化的缺点包括
  • 牛牛襄阳做网站郑州网站建设市场
  • 网站首页的导航栏北京公司注册核名详细流程
  • 专注昆明网站建设有哪些网络营销方式
  • 公司做两个网站网站怎么做本地映射
  • 响应式网站一般做几个尺寸百度联盟怎么做自己的网站
  • 河南做网站的wordpress 幻灯片加数字
  • 东莞网站建设建网站平面设计培训哪个好
  • 网站建设与管理专业是什么办公空间设计案例整套
  • 网站设计网站源码怎么介绍自己的学校
  • 企业网站建设兴田德润很赞运动网站建设主题
  • 沧州自适应网站建设惠安规划局建设局网站
  • 第三方商城网站建设清理wordpress模板
  • 石家庄市建设厅网站wordpress 缩略图代码
  • 网站建设开发服务费怎么做账在线教育平台