准备工作

环境

  • JDK(建议1.8以上)
  • 开发工具,Eclipse或者idea …
  • mysql或者mssql(我是用的mysql5.7.17,给的demo是mysql的)

测试给的Demo

①装好mysql之后启动它,然后用管理工具我用的是navicat,打开然后将给的demo里面的sql脚本导入进去(导入不好的可以手动建立一个,用脚本文件导入后的名字是tb_demo,我这里是手动建的)

mark

最后差不多是这样的结构

②在Eclipse里面import项目,这里我import会有个感叹号,最好重新建一个项目,不然可能会有奇怪的错误下面是如何新建的步骤视频

这里要改的地方就是DbUtil里面数据库配置

public class DbUtil {
//com.microsoft.sqlserver.jdbc.SQLServerDriver
//数据库驱动的名字(1.6还是1.8之后就不需要了,这里还是加上吧)
String driverName = "com.mysql.jdbc.Driver";
//jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo
//连接数据库的地址,前面的不用改,这里要改的就是后面的 demo 换成你的数据库名字(我上面的是demo)
String dbURL = "jdbc:mysql://localhost:3306/demo";
//你的数据库的帐号
String userName = "root";
//装mysql时设置的密码
String userPwd = "admin";

public Connection getCon() throws ClassNotFoundException, SQLException {
Class.forName(driverName);
Connection conn = DriverManager.getConnection(dbURL, userName, userPwd);
return conn;
}

public void closeCon(Connection conn) throws SQLException {
if (conn != null)
conn.close();
}

public static void main(String[] args) {
DbUtil dbUtil = new DbUtil();
try {
dbUtil.getCon();
System.out.println("连接成功");
} catch (Exception e) {
e.printStackTrace();
}
}
}

注意事项

//com.microsoft.sqlserver.jdbc.SQLServerDriver
//数据库驱动的名字(1.6还是1.8之后就不需要了,这里还是加上吧)
String driverName = "com.mysql.jdbc.Driver";
//jdbc:sqlserver://127.0.0.1:1433;DatabaseName=demo
//连接数据库的地址,这里要改的就是后面的 demo 换成你的数据库名字(我上面的是demo)
String dbURL = "jdbc:mysql://localhost:3306/demo";
//你的数据库的帐号
String userName = "root";
//密码
String userPwd = "admin";

要改的差不多就是这4个配置

①如果是mysql并且版本是8以下的,那么driverName 可以不用改,如果是8以上的(群里面那个是8以上的)就需要改成

com.mysql.cj.jdbc.Driver,并且找到适合版本的驱动拷贝到lib目录然后右键bulidpath(在这之前先将老的驱动删掉,bulidpath的作用是将jar包真正的加到你的项目中去)

  • 8 以上 驱动下载地址 链接:https://pan.baidu.com/s/1WXjAAHX5gQC6v5pfiTOqmQ 提取码:5lf5

  • sqlServer需要改的地方我也注释在上面但是我电脑上没sqlserver我没有测试,老师给的包里面有sqlserver的驱动

dbURL,前面的不用改,这里只需要改一下后面的数据库名字,比如我上面建的数据库名字是demo,后面就应该是/demo(如果用脚本直接导入生成的数据库名字是db_demo,这里就要改成jdbc:mysql://localhost:3306/db_demo

  • 对应sqlserver的我也放在上面但是我没装sqlserver所以没测试。

userName,数据库账号(一般默认就是root)

password,数据库密码

启动

在view包下的MainPage,这是用java的swing组件开发的一个GUI页面,最下面有一个main函数直接启动它就行,(如果有乱码,需要将eclipes的工作空间的编码方式换为utf-8),到此环境就基本ok了,后面的就是写代码的事了。

改用自己的数据库

后面的部分主要是代码的问题了,每个人数据库不同也会有一些差距

  • 导入自己的数据

    数据库名字,字段名不要用中文!

    数据库名字,字段名不要用中文 !

    数据库名字,字段名不要用中文!

  • 实体类改成自己的

import java.util.Date;

public class StuInfo {

private Long stuId;
private String stuName;
private String stuSex;
private Date stuDob;
private String stuMajor;

public Long getStuId() {
return stuId;
}

public void setStuId(Long stuId) {
this.stuId = stuId;
}

public String getStuName() {
return stuName;
}

public void setStuName(String stuName) {
this.stuName = stuName;
}

public String getStuSex() {
return stuSex;
}

public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}

public Date getStuDob() {
return stuDob;
}

public void setStuDob(Date stuDob) {
this.stuDob = stuDob;
}

public String getStuMajor() {
return stuMajor;
}

public void setStuMajor(String stuMajor) {
this.stuMajor = stuMajor;
}

public StuInfo() {

}

public StuInfo(String stuName, String stuSex, Date stuDob, String stuMajor) {
this.stuName = stuName;
this.stuSex = stuSex;
this.stuDob = stuDob;
this.stuMajor = stuMajor;
}
}

这里实体类是和数据库的表和字段对应的,一个StuInfo对象就对应一条数据。

  • 增删改查的修改

public class UserDao {
public ResultSet getUsers(User user, Connection con) throws SQLException {
StringBuffer sql = new StringBuffer("select * from t_user ");
if (user.getUserName()!= null) {
sql.append(" where userName like '%"+user.getUserName()+"%'");
}
PreparedStatement ps = con.prepareStatement(sql.toString());
return ps.executeQuery();
}

public int delete(User user, Connection con) throws SQLException{
String sql="delete from t_user where userName='"+user.getUserName()+"'";
PreparedStatement ps = con.prepareStatement(sql);
return ps.executeUpdate();
}

public int add(User user, Connection con) throws SQLException{
String sql="insert into t_user values(?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, user.getUserName());
ps.setString(2, user.getTel());
return ps.executeUpdate();
}

public int modify(User user, Connection con) throws SQLException{
String sql="update t_user set userName=?, tel=? where userName = '"+user.getUserName()+"'";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, user.getUserName());
ps.setString(2, user.getTel());
System.out.println(sql);
return ps.executeUpdate();
}
}

最终都是通过调用这个Dao类实现的增删改查。

  • 页面的修改

按照老师的要求是对我们常用的数据库做增删改查,因为我们用的数据库和给的demo的表结构不一样,所以需要修改MainPage,这个是用java的swing写的一个GUI,所以需要改这些界面上的一些元素,我记的好像有个插件可以直接拖动生成swing这些界面的(看见刘勇用过),我对swing不熟悉(早就过时了,没有学的意义),我用web写的界面

mark

Mysql

Mysql5.7解压版的安装和卸载及常见问题