eclipse连接mysql的一些问题

IDE:eclipseJee2018-12    mysql8.0.13

首先下载对应的mysql驱动,你可以在这里下载https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.13

(有很多种版本自行选择,因为在官网找了半天才找到对应版本!   /滑稽)

然后新建项目,我选的是dynamic web pro,但是因为只是做控制台的小测试,随便吧。如图webcontent的web-inf/lib下面放驱动

实际上,反正最后都要buildpath,放其他地方问题也不大

然后右键项目名称,选择buildpath。在弹出的如图所示的框中选择lib,选中modulepath,从右边添加jars,选择我们刚放在lib的jar

这个时候准备工作已经做完了,可以开始写dao。下面讲一下连接部分的代码(注意看注释)

Statement stmt=null;
ResultSet rs=null;
Connection conn=null;
try {
    Class.forName("com.mysql.cj.jdbc.Driver");
//注意上述的驱动类,不要再写com.mysql.jdbc了

//注意下面的demo1是数据库名称,后面的useSSL=false是我根据保存信息添加的
//serverTimezone也是看到报错说什么时间不对,然后加上的
    String url="jdbc:mysql://localhost:3306/demo1?useSSL=false&serverTimezone=GMT%2B8";
    String username="root";
    String password="520lmz";
    conn=DriverManager.getConnection(url, username, password);
    stmt=conn.createStatement();
    String sql="select * from table1";
    rs=stmt.executeQuery(sql);
    System.out.println("id\ttitle\t\tauthor");
    while(rs.next()) {
	 int id=rs.getInt("id");
         String title=rs.getString("title");
	 String author=rs.getString("author");
	 System.out.println(id+"\t"+title+"\t\t"+author);
    }
}//catch部分的代码就省略了,一定要的记得在finally中间断开数据库连接rs/stmt/conn.close()

因为刚好才看了java类加载机制,这里补充说一下Class.forName()是个什么东西吧。假设有类Dog

Class.forName("Dog"),如果说系统还没有初始化该类(就是说整个程序中还没有用到过Dog类或其子类等),这行代码会导致Dog类被初始化,并返回该类对应的java.lang.Class对象。

你可能会问我们为什么不直接新建一个Driver类,实际上,你把代码改成://    Class.forName("com.mysql.cj.jdbc.Driver");
            com.mysql.cj.jdbc.Driver Driver=new com.mysql.cj.jdbc.Driver();//(这行相当 Driver Driver=(Driver)Class.forName(“Driver”).newInstance())

然后运行也不会出问题。只是这样会多注册一次驱动——具体看这里吧:https://www.cnblogs.com/xingzc/p/5760166.html

好了,谢谢看完,祝你好运。如果版本一样,你有其他问题可以留言,我才做过有印象。。。

——从html/js到servlet/jsp到jdbc的第七天。。终于可以学Struts了

猜你喜欢

转载自blog.csdn.net/qq_25929565/article/details/88894588
今日推荐