一、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 )
【变量名】为:
【变量值】为:
注:
最后点击【确定】
1.5添加系统环境变量(CLASSPATH )
【变量名】为:
最后点击【确定】
1.6系统环境变量里面的Path新添加一条记录值
新增一行记录,填入的值为:
然后点击【确定】
1.7添加的记录
1.8验证JDK是否部署成功
使用快捷键【win+R】,输入cmd,点击【确定】
输入【
三、项目搭建
①打开IntelliJ IDEA
新建一个
②复制文件到刚刚创建的项目
大概是这样的结构
③jar驱动添加为库
这里IntelliJ IDEA的环境就搭建好了
四、MySQL数据库搭建
Windows MySQL 5.7.44 解压版安装教程及报错处理-软技收集(这个是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;
}
}
暂无评论内容