java连接mysql数据库的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java连接mysql数据库的问题相关的知识,希望对你有一定的参考价值。
在一本讲SSH框架的书中有个相册系统的实例,用Struts+Spring开发,但是无法连接到数据库,无法对数据库表进行操作,我知道要用到MySQL驱动包,但是这个包要放在项目哪?而且是不是要写多一个xml文件什么的?
jar放在web工程的lib目录下,applicationContext.xml里面设置数据库连接信息,最好把它放到webroot/web-inf目录下,数据库连接配置如下,同时连接池还需要导入commons-dbcp-1.4.jar、commons-pool.jar。<property name="driverClassName">
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</property>
<property name="url">
<!-- 注意:此处有一个BUG,value中,前后不能有空格或回车键 -->
<value>jdbc:sqlserver://localhost:1433;databaseName=Android</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>sql2008</value>
</property> 参考技术A mysql驱动放到WEB-INF的lib目录里
在hibernate配置文件里配:
<session-factory>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/***</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">mysql</property>
<property name="connection.password">1234</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="show_sql">true</property>
</session-factory> 参考技术B mysql.jar放到WEB-INF下的lib目录下,DriverClassName=com.mysql.jdbc.Driver
URL=jdbc:mysql://localhost:3306/db_name
USERNAME=root
PASSWORD=本回答被提问者和网友采纳 参考技术C 顶LS
Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
这次新安装了一个MySQL数据库,然后navicat连接数据库一点问题没有。
但是通过Java的jdbc连接却怎么都建立不了连接。
连接MySQL会报错Unable to load authentication plugin ‘caching_sha2_password‘
原因是MySQL在8.0后验证方式由mysql_native_password变为caching_sha2_password,所以连接时会报这个错。
数据库用的是Mysql8版本,但工程里面mysql驱动包却是5.1.37版本。只需修改驱动包为8.0.11版本即可。
而驱动的包也由原来的:mysql-connector-java-5.1.28-bin.jar
换成了:mysql-connector-java-8.0.11.jar。
解决方法:
向项目中导入mysql-connector-java-8.0.11的jar包。
下载地址:https://dev.mysql.com/downloads/file/?id=477058
详情请见: 如何向IDEA中导入jar包(●ˇ∀ˇ●)
因此Mysql8.0连接JDBC驱动需要注意以下几点:
1,驱动的类换了个名字
Class.forName("com.mysql.cj.jdbc.Driver");
加上useSSL=true或false
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true", "root", "123456");
加上serverTimezone=GMT
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=GMT", "root", "123456");
如果是maven引入,则需要由:
<!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency>
改为:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency>
在mybatis逆向工程里面配置改成如下:
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/taobao" userId="root" password="aaaaaa"> </jdbcConnection>
以上是关于java连接mysql数据库的问题的主要内容,如果未能解决你的问题,请参考以下文章
java ssh mysql数据库连接失效,重启java工程。如何解决?
java连接数据库问题。 怎么在本地查看自己的mysql数据库的账号密码呢?