jdbc

3种数据库的连接driver和url

人盡茶涼 提交于 2020-03-02 13:33:30
经常要连接数据库时都要去查查他们的driver以及url,现在将其汇总一下,方便以后查找。 mysql String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/test"; SQL Server String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test"; Oracle String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin: @127.0.0.1 :1521:test"; 注意:以上url只适合非集群环境中,如果在集群环境中,请查阅集群环境下的url相关资料。 连接步骤 Class.forName(driver); //加载驱动 Connection conn = DriverManager.getConnection(url, user, password); //获得连接 来源: oschina 链接: https://my.oschina.net/u

通过 spring 容器内建的 profile 功能实现开发环境、测试环境、生产环境配置自动切换

不羁的心 提交于 2020-03-02 07:46:25
软件开发的一般流程为工程师开发 -> 测试 -> 上线,因此就涉及到三个不同的环境,开发环境、测试环境以及生产环境,通常这三个环境会有很多配置参数不同,例如数据源、文件路径、url等,如果每次上线一个新版本时都手动修改配置会十分繁琐,容易出错。spring 为我们提供了 profile 机制来解决这个问题。 spring允许我们通过定义 profile 来将若干不同的 bean 定义组织起来,从而实现不同环境自动激活不同的 profile 来切换配置参数的功能,下面介绍以 xml 的方式定义 profile、如何激活 profile以及定义默认的 profile,整个过程我以配置不同环境的数据源为例,为了简化配置,这里假设只有开发和生产两个环境。 数据源定义为 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}" /> <property name="password" value="${jdbc.password}" /> <property name="jdbcUrl" value="${jdbc.jdbcUrl}" /> <property name="driverClass" value="$

Java Web----Java Web的数据库操作(一)

≡放荡痞女 提交于 2020-03-02 06:26:11
Java Web的数据库操作 一、JDBC技术 1、JDBC简介 JDBC是Java程序与数据库系统通信的标准API,它定义在JDK的API中,通过JDBC技术,Java程序可以非常方便地与各种数据库交互,JDBC在Java程序与数据库系统之间假期了一座桥梁。 JDBC由一组用Java语言编写的类和接口组成,它对数据库的操作提供了基本方法,但由于数据库种类跟多且多有不同,所以对数据库的细节操作由数据库厂商进行实现,且厂商需要提供数据库的驱动程序,下图为Java程序与数据库相交互的示意图: 2、JDBC连接数据库的过程 l 下载驱动包 在JDK中,不包含数据库的驱动程序,使用JDBC操作数据库需要实现下载数据库厂商提供的驱动包,并导入到开发环境中。 l 注册数据库驱动 连接数据库前,需要将数据库厂商提供的数据库驱动注册到JDBC的驱动管理器中,一般是通过将数据库驱动类加载到JVM来实现的,例如连接MYSQL数据库: Class.forName(“com.mysql.jdbc.Driver”); l 构建数据库连接URL URL由数据库厂商制定,不同数据库它的URL有所区别,但都符合一个基本的格式,即“JDBC协议+IP地址或域名+端口+数据库名称”,例如MYSQL数据库为”jdbc:mysql://localhost:8080/test”。 前两步中不同数据库有所差别

MySQl事务隔离级别(命令及简单理解)

我是研究僧i 提交于 2020-03-02 05:25:16
1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transaction isolatin level repeatable read; 4.设置系统当前隔离级别 set global transaction isolation level repeatable read; 5.命令行,开始事务时 set autocommit=off 或者 start transaction 关于隔离级别的理解 1.read uncommitted 可以看到未提交的数据(脏读),举个例子:别人说的话你都相信了,但是可能他只是说说,并不实际做。 2.read committed 读取提交的数据。但是,可能多次读取的数据结果不一致(不可重复读,幻读)。用读写的观点就是:读取的行数据,可以写。 3.repeatable read(MySQL默认隔离级别) 可以重复读取,但有幻读。读写观点:读取的数据行不可写,但是可以往表中新增数据。在MySQL中,其他事务新增的数据,看不到,不会产生幻读。采用多版本并发控制(MVCC)机制解决幻读问题。 4.serializable 可读,不可写。像java中的锁,写数据必须等待另一个事务结束。

MyBatis 实践 -Mapper与DAO

╄→гoц情女王★ 提交于 2020-03-02 05:14:12
MyBatis 实践 标签: Java与存储 MyBatis简介 MyBatis 前身是 iBatis ,是一个基于Java的 数据持久层/对象关系映射(ORM)框架 . MyBatis是对JDBC的封装,使开发人员只需关注SQL本身,而不需花费过多的精力去处理如 注册驱动 、 设置参数 、 创建 Connection / Statement 、 解析结果集 等JDBC过程性代码.MyBatis基于XML/注解的方式配置 Statement ,执行SQL,并将执行结果映射成Java对象, 大大降低了数据库开发的难度. MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs

SQL server jdbc之prelogin数据包

早过忘川 提交于 2020-03-02 04:09:20
为了做sql server的监控功能,需要了解SQL SERVER jdbc与SQL SERVER之间的通信协议。目前在Windows上面安装了sqlserver2016的developer版本。并且通过jdbc来操作数据库,可以得到jdbc的日志情况。通过日志可以了解到通信的过程,从通信的过程可以看到jdbc先发送了一个prelogin数据包到服务端。下面通过反编译的jdbc代码来学习prelogin包的内容。 prelogin数据包是在SQLServerConnection.class文件的Prelogin函数中进行构建的。与prelogin数据包相关的内容如下所示: byte[] arrayOfByte1 = { 18, 1, 0, 67, 0, 0, 0, 0, 0, 0, 16, 0, 6, 1, 0, 22, 0, 1, 5, 0, 23, 0, 36, -1, 0, 0, 0, 0, 0, 0, this.requestedEncryptionLevel, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; ...... ActivityId localActivityId =

JDBC 连接 scan IP 方式 Oracle 11gR2集群环境

淺唱寂寞╮ 提交于 2020-03-02 02:58:47
公司数据库使用 Oracle 11.2.0.4 版本,RAC 环境. 数据库集群:192.168.1.211 (RAC1,SID:wmsdb1),192.168.1.212 (RAC2,SID:wmsdb2). 使用11gR2的scan新特性建了 192.168.1.210( 监听服务名 :wmsdb) 作为scan IP.平时我们通过1.210来操作. 之前尝试通过JDBC直连192.168.1.210 一直连接失败,可以直连192.168.1.211.询问DBA后知道是SCAN方式.属于新特性. 网上找了下参考: http://blog.csdn.net/renfengjun/article/details/8080865 原Oracle连接字符串由: jdbc:oracle:thin:@192.168.1.210:1521:wmsdb 改为: jdbc:oracle:thin:@192.168.1.210:1521/wmsdb 即可.注意最后. 分析原因: 第一种写方是通过SID的方式连接数据库 第二种写法是通过 监听服务名 的方式连接数据 (就是在服务端通过 Net Manager配置的监听名称). 因为SCAN IP 把两个RAC给封装了,但是 SCAN 本身只有 监听服务名 没有 SID,所以只能通过 监听服务名的方式访问 来源: oschina 链接: https:/

springboot配置双数据源报错“jdbcUrl is required with driverClassName”

五迷三道 提交于 2020-03-02 01:43:32
最近的springboot项目中涉及到了双数据源的配置,照着网上的教程配置时,出了一点儿小问题,启动的直接报错“Caused by: java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.”。 jdbc配置如下: ###test01 datasource spring.datasource.test00.url=jdbc:mysql://localhost:3306/test00?serverTimezone=UTC spring.datasource.test00.username=root spring.datasource.test00.password=123456 spring.datasource.test00.driver-class-name=com.mysql.jdbc.Driver 最后发现确实是这个jdbc的配置有问题,在只有一个数据源的时候,直接使用的是spring.datasource.url=xxx,这个是没有问题的,但是在双数据源的时候,就不能再这么写了。 官方文档的解释: 因为连接池的实际类型没有被公开,所以在您的自定义数据源的元数据中没有生成密钥,而且在IDE中没有完成(因为DataSource接口没有暴露属性)。另外

MyBatis和Druid查询属性LocalDateTime报错

时光毁灭记忆、已成空白 提交于 2020-03-02 01:24:13
问题 技术栈版本号: mybatis:3.5.1 druid:1.1.12 JDK:1.8 产生原因 对象的属性使用新的日期函数定义。JDK8之前的Date似乎被隔离了,JDK8新的时间日期API,开始一个新的纪元,谁用谁知道。 class AccountTbl { var id: Int? = null var userId: String? = null var money: Int? = null var tranDate: LocalDateTime? = null } 问题解决 程序跑出的异常为 SQLFeatureNotSupportedException ,异常是druid,90%应该是druid的问题。分析项目涉及ORM框架的版本号 druid1.1.12,mybatis3.5.1。 渐入渐出了下代码的执行流程。 ResultSetHandler 是Mybatis的核心组件,主要负责将结果集resultSets转化成结果列表(或cursor)和处理储存过程的输出。 DefaultResultSetHandler是Myabtis为ResultSetHandler提供的唯一一个实现类,最终的流程都会走到 getPropertyMappingValue ,进行实体属性和JavaBean属性的映射。 TypeHandler是MyBatis中的类型转换器

Spring的设计理念和整体架构

懵懂的女人 提交于 2020-03-02 01:23:53
1.为什么要学习spring? 1.1设计理念和目标 首先要了解spring的设计理念和目标,可以这么说,spring为开发者提供的是一个 一站式的轻量级应用开发框架 (平台),作为平台,spring抽象了我们 在许多应用开发中遇到的共性问题,同时,作为一个轻量级的应用开发框架,spring和传统的J2EE开发相比,有其自身的特点,通过这些自身的特点 充分体现了它的设计理念: 在java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用面向接口开发,充分支持OO(面向对象)的设计方 式 。 比如,在java EE应用开发中,传统的EJB开发需要依赖按照J2EE规范实现的J2EE应用服务器,我们的应用在设计,特别是实现时,往往需要一系列的接口标 准 才能够在应用服务器的环境中得到测试和部署,这种开发方式,使应用在可测试性和部署上都会受到一些影响,spring的设计理念采用了相对EJB而言的 轻量级开发思想,即使用POJO的开发方式,只需要使用简单的java对象或者JavaBean就能进行Java EE开发,这样开发入门,测试,应用部署都得到了简化 另一方面,在我们的应用开发中,往往会涉及复杂的对象耦合关系,如果在java代码中处理这些耦合关系,对代码的维护性和应用扩展性会带来很多不便 而如果使用spring作为应用开发平台,通过使用spring的IOC容器