PS1:这次还是连着上一篇,只不过这里将模拟数据库转为了mysql数据库,代码在这里没有提到的,就是说保持不变即可
————————————–无敌分割线—————————————–
这里要更改的内容其实只有
AuthorService.java这个文件
首先,在更改之前要把数据库配置好,首先要下载Mysql mysql下载地址 下载安装版的比较好,大小选择385.1M的那个(到2016/9/27好用)
还要下载相应的DB Driver也就是JDBC JDBC下载地址 下载Connector/J (因为我们用的java写的)
下载完后,mysql自行安装,这个不难,就照着要求一步一步安装就可以了
安装完之后出现两个图标(具体几个我就不知道,,我懒得卸了重装了,,)
打开左边那个 进入后出现如下界面,把之前设置的密码输入
这时候得到下图
然后我们创建一个叫做author的数据库
使用author数据库并在里面建立一个authors的表
这时候表里面还没有数据,所以我们要插入一个数据
现在数据库已经建好了,这时候要在ecplise里面配置JDBC
然后为了预防万一,我们把这个jdbc同时也扔到lalala项目中的lib中
这时候就可以连接数据库了,点击File->new->other..输入如图,找到connection profile
进去后,这里要注意,要把所有的database改成自己建的那个数据库,例如我们这里建的是叫做author的数据库
注意一共有三个地方要修改,而且密码是之前Mysql的密码
建立完成后我们可以看到
这意味着已经将数据库连接到ecplise上了 好了,我们可以开始将之前那篇博客上面的模拟数据库换成MySQL数据库了
下面贴出修改的代码 1-welcome.jsp中(这个是我的失误,两个对应的变量大小不同) 把author.AuthorID改成author.authorID(因为数据库里面是小写的)
密码 :<input type="text" name="author.authorID"/><br/>2-AuthorService.java
package service; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; import domin.Author; public class AuthorService { public Integer validateAuthor(Author author) { Connection conn = getConn(); String sql = "select * from authors";//对数据库中的authors表进行扫描 PreparedStatement pstmt; System.out.println("0000"); try { pstmt = (PreparedStatement)conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while(rs.next()){//rs是按照authors表中,从上往下一个一个数下来,如果跟author一样,则返回1表示找到了,这个author是从前端传到后端的,待会儿会说在哪儿 if(rs.getString(1).equals(author.getAuthorID())&&rs.getString(2).equals(author.getName())) return 1; } pstmt.close();//记得用完数据库要把数据库关掉 conn.close(); return -1; } catch (SQLException e) { e.printStackTrace(); } return -1; } private static Connection getConn() {//获得数据库,写成一个函数,省的每次调用数据库都重复写一遍,只需要调用这个函数就可以了 String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/author"; String username = "root"; String password = "这里写的是你的mysql密码"; Connection conn = null; try { Class.forName(driver); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(url, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } }这样就能成功的把MySQL数据库替换掉之前的那个模拟数据库了。
哦对了,注释里面有说这个author是从哪儿来的,他是从前端中就是welcome.jsp中的
<form action="AuthorPro" method="post"> 用户名:<input type="text" name="author.name"/><br/> 密码 :<input type="text" name="author.authorID"/><br/> <input type="submit" value="登陆"/> </form>name=author.name 和name=author.ID里面的author来的,后台用的autho.getAuthorID是调用的Lab2.domin中的Author.java里面的方法。
给出时间证明不是假的数据
PS2(对应的插入,删除,修改语句只要更改相应的sql的内容即可,我在这里就不写了,要是实在是不清楚怎么写插入删除修改的话,可以留言告诉我,我再更新)
PS3(还是我的失误,这里要把Author.java里面age类型改成int类型,之前偷懒用String类型,虽然这里并不影响结果,但是改改总是好的)