热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

两种数据库连接方式两种注解(注解版usermapper,文件版)

一、两种连接数据库的方式方式一:springboot默认配置了(DataSource和sqlsessionfactory)直接配置文

一、两种连接数据库的方式

方式一:

springboot默认配置了(DataSource和sqlsessionfactory)

直接配置文件application.yml

里面写

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/o2odb?serverTimezone=UTC&characterEncoding=utf-8&useSSL=truedriver-class-name: com.mysql.jdbc.Driverusername: rootpassword: root

方式二:

类似springmvc 配置datasource和 sessionfactory,然后 写入一个bean加入到容器。

application.properties里面如下


jdbc.driver=com.mysql.jdbc.Driver
jdbc.url= jdbc:mysql://localhost:3306/o2odb?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root

然后新建两个config


import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.beans.PropertyVetoException;@Configuration
@MapperScan("com.hy.xx.dao")public class DataSourceConfiguration {@Value("${jdbc.driver}")private String jdbcDriver;@Value("${jdbc.url}")private String jdbcUrl;@Value("${jdbc.username}")private String jdbcUsername;@Value("${jdbc.password}")private String jdbcPassword;@Bean(name = "dataSource")public ComboPooledDataSource createDataSource() throws PropertyVetoException {ComboPooledDataSource dataSource = new ComboPooledDataSource();//dirverdataSource.setDriverClass(jdbcDriver);//urldataSource.setJdbcUrl(jdbcUrl);//usernamedataSource.setUser(jdbcUsername);//passworddataSource.setPassword(jdbcPassword);//在关闭连接之后不会自动的CommitdataSource.setAutoCommitOnClose(false);// dataSource.setAcquireIncrement(5);// dataSource.setAcquireRetryAttempts(30);// dataSource.setAcquireRetryDelay(1000);// dataSource.setInitialPoolSize(10);dataSource.setMinPoolSize(5);// dataSource.setMaxPoolSize(200);// dataSource.setMaxIdleTime(60);//dataSource.setMaxIdleTimeExcessConnections(600);return dataSource;}}

import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.sql.DataSource;
import java.io.IOException;@Configuration
public class SessionFactoryConfiguration {@Autowiredprivate DataSource dataSource;@Bean(name="sqlSessionFactory")public SqlSessionFactoryBean createSqlSessionFactoryBean() throws IOException{SqlSessionFactoryBean bean = new SqlSessionFactoryBean();//加载主配置文件mybatis-config.xmlbean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));//Mapper扫描路径PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();String packageSearchPath = "classpath*:/mapper/**.xml";bean.setMapperLocations(resolver.getResources(packageSearchPath));//配置实体的包bean.setTypeAliasesPackage("com.hy.oa.model");//dataSourcebean.setDataSource(dataSource);return bean;}}

启动即可。

 

二、两种和数据库打交道

@RestController
public class wenjianversioncontroller {@Autowiredprivate UserDao userDao;@RequestMapping("/wenjianfindall")public String wenjianfindall(){List users = userDao.searchAllUsers();for (User user : users) {System.out.println(user.getId()+"--"+user.getUsername()+""+user.getPassword());}userDao.deleteUserById(2);return "wenjianfindall";}


public interface UserDao {//增int addUser(User user);//删//int deletUser(User user);int deleteUserById(int id);//改int updateUser(User user);//查List searchAllUsers();User searchUserById(int id);
}

然后resource里面的mapper里面



insert into user values(#{id},#{username},#{password})update user set username=#{username},password=#{password} where id=#{id}delete from user where id = #{id}

----------------------------------

方式二:

dao里面直接注解,然后注解里面写sql语句。

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;
@Mapper
public interface UserMapper {@Select("select * from user")List findAll();
}

public class TestController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/findAll")public String findall(){List userList = userMapper.findAll();for(User user : userList){System.out.println(user.getId()+""+user.getUsername()+""+user.getPassword());}return "hello";}}

 


推荐阅读
  • 1.使用通用mapper时实体类的mapper接口(即普通的dao接口)继承了通用mapper接口后,在依赖注入实体类的mapper接口时 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
author-avatar
envmm_884_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有