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

快速建站公司怎么样卫辉网站建设

快速建站公司怎么样,卫辉网站建设,好的网站建设启示,行程卡微信小程序入口文章目录 Spring JDBC实例1#xff0c;导入依赖2#xff0c;配置数据源3#xff0c;数据库4#xff0c;实体类5#xff0c;dao层5#xff0c;配置Dao Bean6#xff0c;业务逻辑层7#xff0c;配置Service Bean8#xff0c;测试 JdbcTemplate常用方法1,导入依赖2#… 文章目录 Spring JDBC实例1导入依赖2配置数据源3数据库4实体类5dao层5配置Dao Bean6业务逻辑层7配置Service Bean8测试 JdbcTemplate常用方法1,导入依赖2配置数据源4dao层5配置Dao Bean6业务逻辑7配置Service Bean8测试 Spring JDBC Spring JDBC是Spring框架提供的用于简化JDBC编程的模块它封装了JDBC的繁琐的操作提供了一套简单易用的API可以帮助开发者更加轻松的访问和操作数据库。 Spring JDBC的主要特征 简化了JDBC的繁琐操作 使用原生的 JDBC 进行数据库操作时需要手动创建连接、编写 SQL 语句、处理异常、释放资源等代码量较大且容易出错。Spring JDBC 提供了 JdbcTemplate 和 NamedParameterJdbcTemplate 等模板类封装了这些繁琐的操作简化了数据库访问的流程。 异常处理和资源管理 Spring JDBC 处理了 JDBC 中的常见异常并对资源的释放进行了封装开发者不再需要手动编写大量的 try-catch-finally 代码块来处理异常和释放资源。 支持面向对象的操作方式 Spring JDBC 将 JDBC 的结果集映射为 Java 对象的过程进行了抽象和封装开发者可以更加方便地将数据库中的数据映射为 Java 对象从而实现面向对象的数据库操作。 事务管理 Spring JDBC 可以与 Spring 的事务管理模块结合使用提供了对事务的支持开发者可以通过声明式的方式管理事务而不再需要手动管理事务的提交和回滚。 使用 Spring JDBC 可以大大简化数据库访问的流程减少了开发者的工作量提高了开发效率并且使代码更加清晰和易于维护。 实例 1导入依赖 dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.3.13/version /dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.49/version /dependencyspring-jdbc Spring框架提供的JDBC抽象层的核心包用于简化和优化数据库访问操作它包含了许多用于执行SQL语句处理结果集和管理事务的类和接口。 mysql-connector-java MySQL官方提供的Java连接器用于在Java应用程序中连接和操作MySQL数据库。它实现了JDBC规范提供了与MySQL数据库的通信功能。通过该包可以使用Java代码与MySQL数据库建立连接执行SQL语句处理结果集等操作。 2配置数据源 ?xml version1.0 encodingUTF-8?!-- XML声明xml版本和编码格式 --!-- spring配置文件起点 -- beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsd!--配置数据源DriverManagerDataSource spring框架提供的一个数据源实现类用于管理和配置基于JDBC的数据源它实现了Java.sql.DataSource接口可以被用于其他Spring JDBC API的数据源--bean iddataSource classorg.springframework.jdbc.datasource.DriverManagerDataSource!-- 数据库连接驱动 --property namedriverClassName valuecom.mysql.jdbc.Driver/!-- 数据库连接URL --property nameurl valuejdbc:mysql://localhost:3306/demo?useUnicodetrueamp;characterEncodingutf8/!-- 数据库连接用户名 --property nameusername valueroot/!-- 数据库连接密码 --property namepassword value123456//bean/beans3数据库 create table user(id int primary key auto_increment comment 主键id,name varchar(20) character set utf8mb4 not null comment 姓名,email varchar(20) character set utf8mb4 not null comment 邮箱 )charset utf8mb4;insert into user(name, email) values(张三,123qq.com);4实体类 package com.sin.pojo;public class User {private long id;private String name;private String email;public User(){}public User(String name, String email) {this.name name;this.email email;}public long getId() {return id;}public void setId(long id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}Overridepublic String toString() {return User{ id id , name name \ , email email \ };} } 5dao层 package com.sin.dao;import com.sin.pojo.User; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;import javax.sql.DataSource;/*** createTime 2024/1/4 11:52* createAuthor SIN* use*/ public class UserDao {private JdbcTemplate jdbcTemplate;public void setDatabase(DataSource database){this.jdbcTemplate new JdbcTemplate(database);}public User getUserById(int id){String sql SELECT * FROM user WHERE id ? ;return jdbcTemplate.queryForObject(sql,new Object[]{id},new BeanPropertyRowMapper(User.class));}public void addUser(User user){String sql INSERT INTO user (id,name,email) VALUES (?,?,?);jdbcTemplate.update(sql,user.getId(),user.getName(),user.getEmail());}}5配置Dao Bean !-- 配置bean --bean iduserDao classcom.sin.dao.UserDao!--name : 属性名映射到UserDao类中的setDatabase()方法中ref : 属性值引用数据源中的Bean--property namedatabase refdataSource//bean为什么database映射的是setDatabase方法呢??? 在 Spring 中属性名和对应的 setter 方法名遵循一定的命名规则即为驼峰命名法。具体来说如果一个属性的名称是 database则对应的 setter 方法应该命名为 setDatabase。 ​ 因为在 Spring 中通过反射机制来调用 setter 方法时会根据属性名称自动生成方法名并自动调用该方法进行属性的注入。因此我们需要严格遵循属性和方法的命名规则以确保属性能够正确地被注入到对象中。 如果属性名为database1那么需要映射的方法名为setDatabase1 6业务逻辑层 package com.sin.service;import com.sin.dao.UserDao; import com.sin.pojo.User; import org.springframework.stereotype.Service;/*** createTime 2024/1/3 14:37* createAuthor SIN* use*/ public interface UserService {public void setUserDao(UserDao userDao);public User getUserById(int userId);public void addUser(User user); }package com.sin.service.impl;import com.sin.dao.UserDao; import com.sin.pojo.User; import com.sin.service.UserService; import org.springframework.stereotype.Service;/*** createTime 2024/1/3 15:14* createAuthor SIN* use*/ Service public class UserServiceImpl implements UserService {private UserDao userDao;Overridepublic void setUserDao(UserDao userDao) {this.userDao userDao;}Overridepublic User getUserById(int userId) {return userDao.getUserById(userId);}Overridepublic void addUser(User user) {userDao.addUser(user);} }7配置Service Bean bean iduserService classcom.sin.service.impl.UserServiceImplproperty nameuserDao refuserDao/ /bean8测试 package com.sin.test;import com.sin.pojo.User; import com.sin.service.UserService; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;/*** createTime 2024/1/4 9:17* createAuthor SIN* use*/ public class AppTest {Testpublic void test(){ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml);UserService userService context.getBean(userService,UserService.class);User user new User(李四,12345611.com);userService.addUser(user);System.out.println(userService.getUserById(1));System.out.println(userService.getUserById(2));} }JdbcTemplate JdbcTemplate是Spring框架提供的一个用于简化JDBC操作的工具类它封装了一系列常用的数据库操作方法能够更好的帮助我们进行数据库的增删改查的操作。 常用方法 方法说明query(String sql, RowMapper rowMapper)执行查询操作并将结果映射为一个对象列表。sql 参数为查询语句rowMapper 参数为结果集的映射器queryForObject(String sql, RowMapper rowMapper)执行查询操作并返回单个对象。如果查询结果为空或多于一个对象则会抛出异常queryForList(String sql)执行查询操作并将结果映射为一个列表。适用于返回一列或多列的结果update(String sql)执行更新操作如插入、更新和删除等。sql 参数为要执行的更新语句update(String sql, Object… args)执行带参数的更新操作。sql 参数为带有占位符的更新语句args 参数为占位符的值batchUpdate(String sql, ListObject[] batchArgs)批量执行更新操作。sql 参数为要执行的更新语句batchArgs 参数为批量更新的参数列表execute(String sql)执行任意的 SQL 语句如创建表、删除表等call(CallableStatementCreator csc, List declaredParameters)调用存储过程或函数 1,导入依赖 dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.3.13/version /dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.49/version /dependency2配置数据源 ?xml version1.0 encodingUTF-8?!-- XML声明xml版本和编码格式 --!-- spring配置文件起点 -- beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsdbean iddataSource classorg.springframework.jdbc.datasource.DriverManagerDataSourceproperty namedriverClassName valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/demo?useUnicodetrueamp;characterEncodingutf8/property nameusername valueroot/property namepassword value123456//bean /beans4dao层 package com.sin.dao;import com.sin.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository;import javax.sql.DataSource; import java.util.List;/*** createTime 2024/1/4 11:52* createAuthor SIN* use*/ Repository // 表示该类为dao层 public class UserDao {private JdbcTemplate jdbcTemplate;public void setDataSource(DataSource dataSource){this.jdbcTemplate new JdbcTemplate(dataSource);}public ListUser findAll() {String sql SELECT * FROM user;ListUser users jdbcTemplate.query(sql, BeanPropertyRowMapper.newInstance(User.class));return users;}public User findById(Long id) {String sql SELECT * FROM user WHERE id ? ;return jdbcTemplate.queryForObject(sql,new Object[]{id},new BeanPropertyRowMapper(User.class));}public void save(User user) {String sql INSERT INTO user(name, email) VALUES(?,?);Object[] args {user.getName(), user.getEmail()};jdbcTemplate.update(sql, args);}public void update(User user) {String sql UPDATE user SET name?, email? WHERE id?;Object[] args {user.getName(), user.getEmail(), user.getId()};jdbcTemplate.update(sql, args);}public void delete(Long id) {String sql DELETE FROM user WHERE id?;Object[] args {id};jdbcTemplate.update(sql, args);} }5配置Dao Bean bean iduserDao classcom.sin.dao.UserDaoproperty namedataSource refdataSource/ /bean6业务逻辑 package com.sin.service;import com.sin.pojo.User; import org.springframework.jdbc.core.BeanPropertyRowMapper;import java.util.List;/*** createTime 2024/1/5 9:08* createAuthor SIN* use*/ public interface UserService {public ListUser findAll();public User findById(Long id);public void save(User user);public void update(User user);public void delete(Long id); }package com.sin.service.impl;import com.sin.dao.UserDao; import com.sin.pojo.User; import com.sin.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Service; import org.springframework.test.context.ContextConfiguration;import java.util.List;/*** createTime 2024/1/5 9:09* createAuthor SIN* use*/ Service public class UserServiceImpl implements UserService {private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao userDao;}Overridepublic ListUser findAll() {return userDao.findAll();}Overridepublic User findById(Long id) {return userDao.findById(id);}Overridepublic void save(User user) {if (user ! null) {userDao.save(user);}}Overridepublic void update(User user) {userDao.update(user);}Overridepublic void delete(Long id) {if (id ! null) {userDao.delete(id);}} }7配置Service Bean bean iduserService classcom.sin.service.impl.UserServiceImplproperty nameuserDao refuserDao/ /bean8测试 package com.sin.test;import com.sin.pojo.User; import com.sin.service.UserService; import com.sin.service.impl.UserServiceImpl; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import java.util.List;/*** createTime 2024/1/5 9:21* createAuthor SIN* use*/ public class UserServiceTest {public static UserService getUserService() {ApplicationContext applicationContext new ClassPathXmlApplicationContext(applicationContext.xml);return applicationContext.getBean(userService, UserService.class);}Testpublic void testFindAll(){ListUser users getUserService().findAll();for(User user : users){System.out.println(user);}}Testpublic void testFindById() {User user getUserService().findById(1L);System.out.println(user);}Testpublic void testSave() {User user new User();user.setName(张三);user.setEmail(121212.111);getUserService().save(user);}Testpublic void testUpdate() {User user getUserService().findById(2L);user.setName(李四);user.setEmail(121212121211.com);getUserService().update(user);}Testpublic void testDelete() {getUserService().delete(1L);}}
http://www.zqtcl.cn/news/10133/

相关文章:

  • 做网站排行为网站做电影花絮
  • 电商网站设计与制作城阳网站建设公司
  • 北京南站停车场收费标准深圳外贸电商网站建设
  • asp网站有哪些如何建设优化一个网站
  • 找企业网站制作个人简历免费制作网站
  • 网站空间换了 使用原有域名网站开发学院
  • 帝国cms做中英文网站登录页面设计代码
  • 网站建设_快杰云主机
  • 营销型网站建设个人总结怎么写域名对网站的影响
  • 如何看访问网站的dns由wordpress自豪地提供
  • 做网站 excel网站被挂马怎么处理
  • seo网站优化工具大全郑州商城网站建设多少钱
  • 创建大型网站合肥推广优化公司
  • 网站数据库模板做网站个体户经营范围
  • 商丘网站公司网页平面设计公司
  • 网站建设免费发布没有网站 淘宝客
  • 网站设计怎么做超链接wordpress+企业库插件
  • 网站视差怎么做云南最新消息
  • 制作网站的公司还能赚钱吗青岛网站设计公司电话
  • 高校微信网站建设情况汇报二手房发布网站怎么做
  • 建设部标准网站seo关键词软件
  • 黑龙江省城市建设工程学校官方网站好牌子商城网
  • 北京网站设计技术浏览器的网站通知怎么做
  • 标准网站建设服务器建立wordpress数据库
  • 网站开发+接活中国城乡建设部官网
  • google网站怎么做流量网站建设教程 湖南岚鸿
  • 广西桂林网站在线优化工具
  • 网站没有icp备案怎么访问24小时学会网站建设 pdf下载
  • 网站除了wordpress外安徽省建设工程质量管理办法
  • 网站admin密码北京网站建设 案例