1-图书管理系统(环境部署)软技收集2024年12月19日 11:43:07更新关注私信 共计9581字,阅读大约需要31分56秒 02095 加入QQ群 QQ联系我 微信公众号 微信联系我 在线联系站长 所有用到的资料在文章末尾获取!!! 一、IntelliJ IDEA软件的安装 IDEA 2024.3 最新破解版安装教程(附激活码,至2099年~)-软技收集(这个是IntelliJ IDEA安装教程) 二、JDK安装 1.下载jdk的安装包 这里我提供了一个 jdk-8u421-windows-x64.exe ①双击打开,点击下一步 ②选着你需要安装到的位置 这里我就默认C盘,当然你也可以选择其他地方 ③等待一会弹出安装目标文件夹窗口 继续点击下一步,这里我就默认C盘,当然你也可以选择其他地方 ④到这里jdk的安装就完成了 但是没有配置环境变量,依旧不能使用 ⑤JDK环境变量配置 1.1右键此电脑,选择属性 1.2向下滑动找到高级系统设置 1.3选择环境变量 1.4添加系统环境变量(JAVA_HOME) 【变量名】为:JAVA_HOME 【变量值】为:C:\Program Files\Java\jre1.8.0_421 注:此处填写你自己的jdk安装路径 最后点击【确定】 1.5添加系统环境变量(CLASSPATH) 【变量名】为:CLASSPATH 【变量值】为:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 最后点击【确定】 1.6系统环境变量里面的Path新添加一条记录值 新增一行记录,填入的值为:%JAVA_HOME%\bin 然后点击【确定】 1.7添加的记录 最后一定要点确定,不然所有的都白费了 1.8验证JDK是否部署成功 使用快捷键【win+R】,输入cmd,点击【确定】 输入【java -version】,命令窗口打印jdk信息则安装成功。 三、项目搭建 ①打开IntelliJ IDEA 新建一个项目(New Project) ②复制文件到刚刚创建的项目 大概是这样的结构 ③jar驱动添加为库 这里IntelliJ IDEA的环境就搭建好了 四、MySQL数据库搭建 Windows MySQL 5.7.44 解压版安装教程及报错处理-软技收集(这个是MySQL数据库安装教程)(最好是卸载你原来的重新安装) MySQL 命令大全 | 菜鸟教程 卸载MySQL 卸载MySQL 如果你想卸载MySQL,也很简单。 使用管理员运行cmd,打开黑框。 敲入net stop mysql,回车。 再敲入mysqld -remove mysql,回车。 最后删除MySQL目录及相关的环境变量。 至此,MySQL卸载完成! 按照上面搭建好数据库,并导入data文件 4.1停止数据库服务 使用命令或则服务 # 启动MySQL服务 net start mysql # 检查MySQL服务状态 sc query mysql # 关闭MySQL服务 net stop mysql 确保MySQL服务是关闭状态 4.2导入data 没有这个解压软件的到这里下载 PC-64-Bandizip v7.36 激活版(解压缩软件)-软技收集 4.3然后启动MySQL服务 启动MySQL服务 net start mysql 4.4打开Navicat Premium连接好本地的数据库 没有的去这里下载 PC-02-Navicat Premium(数据库管理) v17.1.11 绿色版-软技收集 4.5以下为导入后的数据展示 book borrow reader user 到此数据库的部署也完成了,现在可以去IntelliJ IDEA修改一个地方,然后运行项目 五、项目的运行 ①打开项目的src-》data-》BaseDao ②打开中文是乱码 是我们的编码格式设置为UTF-8而项目是GBK格式 改一下就好 或者修改整个项目的编码格式 ③修改url和dbPwd 改成我们自己的 protected static String url = "jdbc:mysql://localhost:3306/db_09";// 定义要使用的数据库资源 protected static String dbPwd = "123";// 定义连接数据库的密码 ④运行Login登录界面 ⑤运行成功 ⑥登录密码 用户名:admin 密码:admin 用户名:user 密码:user 注: 项目运行后里面内容是乱码 编码格式问题已解决 六、编码格式问题解决思路 下面是研究过程 大概的方法是修改src-》data中的代码 其中的ChangeString删除,这个主要负责 类功能:用于字符编码的相互转换。 /** * 静态成员方法1:用于将字符集为“ISO8859_1”的字符串,转换为字符集为"GBK"的字符串。 转出: * 数据表(ISO8859_1或Latin1)→程序(GBK) */ 例如BookDao 改为,将代码中的 book.setId(ChangeString.ISOToGBK(rs.getString(“id”))); 改为 book.setId(rs.getString(“id”)); 修改后的代码移除了编码转换(ISO 转 GBK)部分,直接将数据库中获取的原始字符串赋值给 book 的 ID 属性。 七、中文乱码解决方法 修改src-》data中每个代码 1.ReaderDao.java 此处只粘贴要修改的代码 //为原来的,//下面的为修改后 /** 成员方法1:通过读者编号,获取一个读者对象 */ public static Reader getReaderById(String id) { Reader reader = null; if (id != null) { // 构造按照读者编号查询读者的sql查询语句 String sql = "select * from reader where id='" + id + "'"; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 try { if (rs.next()) {// 下移结果集指针,判断记录是否存在? reader = new Reader();// 创建读者对象,并保存读者信息 // reader.setId(ChangeString.ISOToGBK(rs.getString("id"))); reader.setId(rs.getString("id")); // reader.setName(ChangeString.ISOToGBK(rs.getString("name"))); reader.setName(rs.getString("name")); // reader.setType(ChangeString.ISOToGBK(rs.getString("type"))); reader.setType(rs.getString("type")); // reader.setSex(ChangeString.ISOToGBK(rs.getString("sex"))); reader.setSex(rs.getString("sex")); reader.setMax_num(rs.getInt("max_num")); reader.setDays_num(rs.getInt("days_num")); } } catch (SQLException e) { e.printStackTrace(); } } return reader;// 返回读者对象 } /** 成员方法2:通过sql查询语句,获取读者对象列表 */ public static List<Reader> selectReaderList(String sql) { List<Reader> list = new ArrayList<Reader>(); // 创建一个保存读者对象的列表 if (sql != null) { Reader reader = null; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 try { while (rs.next()) {// 下移结果集指针,判断记录是否存在? reader = new Reader(); // 创建读者对象,保存读者信息 // reader.setId(ChangeString.ISOToGBK(rs.getString("id"))); reader.setId(rs.getString("id")); // reader.setName(ChangeString.ISOToGBK(rs.getString("name"))); reader.setName(rs.getString("name")); // reader.setType(ChangeString.ISOToGBK(rs.getString("type"))); reader.setType(rs.getString("type")); // reader.setSex(ChangeString.ISOToGBK(rs.getString("sex"))); reader.setSex(rs.getString("sex")); reader.setMax_num(rs.getInt("max_num")); reader.setDays_num(rs.getInt("days_num")); list.add(reader);// 向读者列表添加读者对象 } } catch (Exception e) { e.printStackTrace(); } } return list;// 返回读者列表 } 2.BookDao.java 此处只粘贴要修改的代码 //为原来的,//下面的为修改后 /** 成员方法1:通过图书编号,获取一个图书对象 */ public static Book getBookById(String id) { Book book = null; if (id != null) { // 构造按照图书编号查询图书的sql查询语句 String sql = "select * from book where id='" + id + "'"; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 // 处理查询结果 try { if (rs.next()) { // 创建图书对象,保存图书信息 book = new Book(); // book.setId(ChangeString.ISOToGBK(rs.getString("id"))); book.setId(rs.getString("id")); // book.setName(ChangeString.ISOToGBK(rs.getString("name"))); book.setName(rs.getString("name")); // book.setType(ChangeString.ISOToGBK(rs.getString("type"))); book.setType(rs.getString("type")); // book.setAuthor(ChangeString.ISOToGBK(rs.getString("author"))); book.setAuthor(rs.getString("author")); // book.setTranslator(ChangeString.ISOToGBK(rs.getString("translator"))); book.setTranslator(rs.getString("translator")); // book.setPublisher(ChangeString.ISOToGBK(rs.getString("publisher"))); book.setPublisher(rs.getString("publisher")); // book.setPublish_time(ChangeString.ISOToGBK(rs.getString("publish_time"))); book.setPublish_time(rs.getString("publish_time")); book.setStock(rs.getInt("stock")); book.setPrice(rs.getDouble("price")); } } catch (SQLException e) { e.printStackTrace(); } } return book;// 返回图书对象 } /** 成员方法2:通过图书名,获取一个图书对象 */ public static Book getBookByName(String name) { Book book = null; if (name != null) { // 构造按照图书名称查询图书的sql查询语句 String sql = "select * from book where name='" + name + "'"; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 // 处理查询结果 try { if (rs.next()) { // 创建图书对象,保存图书信息 book = new Book(); // book.setId(ChangeString.ISOToGBK(rs.getString("id"))); book.setId(rs.getString("id")); // book.setName(ChangeString.ISOToGBK(rs.getString("name"))); book.setName(rs.getString("name")); // book.setType(ChangeString.ISOToGBK(rs.getString("type"))); book.setType(rs.getString("type")); // book.setAuthor(ChangeString.ISOToGBK(rs.getString("author"))); book.setAuthor(rs.getString("author")); // book.setTranslator(ChangeString.ISOToGBK(rs.getString("translator"))); System.out.println(rs.getString("translator")); // book.setPublisher(ChangeString.ISOToGBK(rs.getString("publisher"))); System.out.println(rs.getString("publisher")); // book.setPublish_time(ChangeString.ISOToGBK(rs.getString("publish_time"))); book.setPublish_time(rs.getString("publish_time")); book.setStock(rs.getInt("stock")); book.setPrice(rs.getDouble("price")); } } catch (SQLException e) { e.printStackTrace(); } } return book;// 返回图书对象 } 3.UserDao.java 此处只粘贴要修改的代码 //为原来的,//下面的为修改后 /** 成员方法1:通过用户名和用户密码,获取一个用户对象 */ public static User getUser(String name, String pass) { User user = null; if (name != null || pass != null) { // 构造按照用户名和密码查询用户的sql查询语句 String sql = "select * from user where name=" + "'" + name + "' and pass=" + "'" + pass + "'"; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 try { // 处理查询结果 if (rs.next()) {// 下移结果集指针,判断记录是否存在? user = new User();// 创建用户对象,并保存用户信息 user.setId(rs.getInt("id")); // user.setName(ChangeString.ISOToGBK(rs.getString("name"))); user.setName(rs.getString("name")); // user.setPass(ChangeString.ISOToGBK(rs.getString("pass"))); user.setPass(rs.getString("pass")); user.setIs_admin((rs.getByte("is_admin"))); } } catch (SQLException e) { e.printStackTrace(); } } return user;// 返回用户对象 } /** 成员方法2:通过用户编号,获取一个用户对象 */ public static User getUser(int id) { User user = null; if (id > 0) { // 构造按照用户编号查询用户的sql查询语句 String sql = "select * from user where id=" + id; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 try { if (rs.next()) {// 下移结果集指针,判断记录是否存在? user = new User();// 创建用户对象,并保存用户信息 user.setId(rs.getInt("id")); // user.setName(ChangeString.ISOToGBK(rs.getString("name"))); user.setName(rs.getString("name")); // user.setPass(ChangeString.ISOToGBK(rs.getString("pass"))); user.setPass(rs.getString("pass")); user.setIs_admin((rs.getByte("is_admin"))); } } catch (SQLException e) { e.printStackTrace(); } } return user;// 返回用户对象 } /** 成员方法3:通过用户名,获取一个用户对象 */ public static User getUser(String name) { User user = null; if (name != null) { // 构造按照用户名查询用户的sql查询语句 String sql = "select * from user where name='" + name + "'"; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询语句,并返回结果集 try { if (rs.next()) { user = new User(); user.setId(rs.getInt("id")); // user.setName(ChangeString.ISOToGBK(rs.getString("name"))); user.setName(rs.getString("name")); // user.setPass(ChangeString.ISOToGBK(rs.getString("pass"))); user.setPass(rs.getString("pass")); user.setIs_admin((rs.getByte("is_admin"))); } } catch (SQLException e) { e.printStackTrace(); } } return user; } /** 成员方法4:查询所有用户对象,并返回用户对象列表 */ public static List<User> selectUserList() { User user = null; List<User> list = new ArrayList<User>();// 创建一个放置用户对象的列表 // 构造查询所有用户的sql查询语句 String sql = "select * from user"; ResultSet rs = BaseDao.executeQuery(sql);// 执行查询操作,并返回结果集 try { while (rs.next()) { // 创建用户对象,并保存用户信息 user = new User(); user.setId(rs.getInt("id")); // user.setName(ChangeString.ISOToGBK(rs.getString("name"))); user.setName(rs.getString("name")); // user.setPass(ChangeString.ISOToGBK(rs.getString("pass"))); user.setPass(rs.getString("pass")); user.setIs_admin((rs.getByte("is_admin"))); list.add(user);// 将这个用户对象,添加到用户列表中 } } catch (Exception e) { e.printStackTrace(); } return list;// 返回用户对象列表 } 4.ChangeString.java 删除 5.BaseDao.java 此处只粘贴要修改的代码 //为原来的,//下面的为修改后 /** * 成员方法1:创建执行对象,执行查询操作 * @param sql * @return */ public static ResultSet executeQuery(String sql) { if (sql != null) { if (conn == null) { new BaseDao();// 加载驱动,并创建与数据库的连接对象 } try { return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, // ResultSet.CONCUR_UPDATABLE).executeQuery(ChangeString.GBKToISO(sql));// 创建执行对象,执行查询操作,并返回结果集 ResultSet.CONCUR_UPDATABLE).executeQuery(sql);// 创建执行对象,执行查询操作,并返回结果集 } catch (SQLException e) { System.out.println("查询失败!");//调式 e.printStackTrace(); return null; } } else { System.out.println("查询语句为空!");//调式 return null; } } /** * 成员方法2:创建执行对象,执行更新操作 * @param sql * @return */ public static int executeUpdate(String sql) { if (sql != null) { if (conn == null) { new BaseDao();// 加载驱动,并创建与数据库的连接对象 } try { // return conn.createStatement().executeUpdate(ChangeString.GBKToISO(sql));// 创建执行对象,执行更新操作,并返回1 return conn.createStatement().executeUpdate(sql);// 创建执行对象,执行更新操作,并返回1 } catch (SQLException e) { System.out.println("更新失败!");//调式 e.printStackTrace(); return -1; } } else { System.out.println("更新语句为空!");//调式 return -1; } } 温馨提示:本文最后更新于2024年12月19日 11:43:07,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长。 本文资源整理自网络,仅供学习和研究使用,请在下载后24小时内删除,谢谢合作! 如果觉得本文有用就按Ctrl+D收藏,方便以后随时翻看,免得想看时又找不着 或 发现更多 免费资源1-图书管理系统(环境部署)资源下载 十二 9 本站历史上的今天 "吼吼~~~,往年的今天站长不知道跑哪里偷懒去了~~~" © 版权声明 软技收集版权声明 ① 本网站名称:❤软技收集❤ 本站永久网址:▶https://rjasj.com◀ ② 如果您喜欢本站, 点击这儿 开通VIP,同时按Ctrl+D保存网页。 ③ 在浏览网站中可能会帮助到您: 使用帮助 | 报毒说明 | 侵权删除 | | ④ 本站接受投稿,同时也开启了创作分成,投稿用户只需自行设置收费即可!点击查看 如果需要投稿,请点击投稿 发布文章! ⑤ 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。 ⑥ 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。 ⑦ 修改版本安卓及电脑软件,加群提示为修改者自留,非本站信息,注意鉴别。 ⑧ 本网站部分资源来源于网络,仅供大家学习与参考,请于下载后24小时内删除。 ⑨ 若作商业用途,请联系原作者授权,若本站侵犯了您的权益请联系站长进行删除处理。 THE ENDIntelliJ IDEA安装使用教程技术分享# 环境部署 喜欢就支持一下软技收集吧点赞5赞赏 分享QQ空间微博QQ好友海报分享复制链接收藏