Eclipse连接mysql数据库错误:Cannot create PoolableConnectionFactory

错误的含义是无法创建对数据库的连接后面一般还要带一个括号说明错误的具体内容我的说什么端口错误

 

后来经过证实是Eclipse中的Servers中的cnotext配置的问题,具体来总结一下以备以后有用。

 

tomcat配置有两种,一是自带的配置在自己目录中的conf中,有有关的contest文件。而Eclipse启动tomcat的时候并不是用的tomcat自带的,即用的是第二种配置文件:Servers中的context配置信息。

刚开始我用的是

 

type="javax.sql.DataSource"

maxActive="100" maxIdle="30" maxWait="10000"

username="root" password="mysql"

driverClassName="com.mysql.jdbc.Driver"

url="jdbc:mysql://127.0.0.1:3306;DatabaseName=test"/>

 

后来将url改为了url="jdbc:mysql://127.0.0.1:3306/test"后竟然启动成功了。呵呵,但是以前我这么启动也是没有问题的阿

 

这里也附带上一个网友的Eclipse配置连接数据库信息,可以参考:

 



怎样在eclipse开发环境中连接数据库。

1)eclipse开发环境里没有集成mysql的驱动,需要从以下地址下载连接驱动程序mysql-connector-java-XX-XX-XX.zip:

http://dev.mysql.com/downloads/connector/j

2)解压,只取文件mysql-connector-java-XX.XX.XX-bin.jar,将其引用到你需要连接mysql数据库的工程里,如:我在eclipsel里建了一个测试数据库连接的工程ConMysql。具体操作如下:

   在工程ConMysql上点击右键

   properties->Java Build Path->Libraries

   点击Add External JARS...

   选取解压后的mysql-connector-java-XX.XX.XX-bin.jar

3.编写测试代码1

import java.sql.*; public class MysqlJdbc { public static void main(String args[]) { try { Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序 //Class.forName("org.gjt.mm.mysql.Driver"); System.out.println("Success loading Mysql Driver!"); } catch (Exception e) { System.out.print("Error loading Mysql Driver!"); e.printStackTrace(); } try { Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mysql","root",""); //连接URL为 jdbc:mysql//服务器地址/数据库名 //后面的2个参数分别是登陆用户名和密码 System.out.println("Success connect Mysql server!"); Statement stmt = connect.createStatement(); ResultSet rs = stmt.executeQuery("select * from help_topic"); while (rs.next()) { System.out.println(rs.getString("name")); } } catch (Exception e) { System.out.print("get data error!"); e.printStackTrace(); } } } 

   4.编写测试代码2

import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class LoginFrame extends JFrame implements ActionListener{ JLabel label = new JLabel("请输入用户名和密码:"); JTextField tfName = new JTextField(""); //输入用户名的文本框 JPasswordField tfPassword = new JPasswordField(""); //输入密码的密码框 JButton button = new JButton("登录"); public LoginFrame() { this.setTitle("登录验证"); button.addActionListener(this); this.getContentPane().setLayout(new GridLayout(4,1)); this.getContentPane().add(label); this.getContentPane().add(tfName); this.getContentPane().add(tfPassword); this.getContentPane().add(button); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300,200); this.setLocation(200,300); this.setVisible(true); } public void actionPerformed(ActionEvent e) { try{ /* * 连接MySQL数据库 */ Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/mysql","root",""); Statement stmt=conn.createStatement(); String sql = "select * from account where username='" + tfName.getText() + "'"; sql += " and password='" + tfPassword + "'"; //准备查询语句 ResultSet rs=stmt.executeQuery( sql ); if( rs.next() ) label.setText("合法用户"); //身份验证通过??? else label.setText("非法用户"); //身份验证没有通过????? }catch(Exception ee){ ee.printStackTrace(); } } public static void main(String[] args) { new LoginFrame(); } } 

 

 

你可能感兴趣的:(jsp毕业设计)