作者简介:全栈开发工程,从事Java、Python、前端、小程序方面的开发和研究,对大数据应用与开发比较感兴趣,
主要内容:Java项目、前端项目、Python项目、小程序开发、大数据项目、单片机
收藏点赞不迷路 关注作者有好处
文末获取源码
感谢您的关注,请收藏以免忘记,点赞以示鼓励,评论给以建议,爱你哟
项目编号:BS-PT-113
一,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
开发技术:JavaWeb
二,项目简介
本系统基于JavaWeb开发实现了一个在线房屋租赁平台系统。系统前端用户实现用户注册登录、查看房源信息、在线租赁、签定合同、在线留言、查看新闻等相关功能。后台管理员主要实现对相关信息的基本数据管理,完成用户管理、房源管理、房型管理、新闻管理、租赁管理、合同管理、系统管理、轮播图和友情链接管理等。#计算机毕业设计
#求职指南
#毕业论文
具体功能查看系统展示
三,系统展示
系统首页
房屋信息查看
在线租赁
新闻查看
在线留言
个人中心
后台管理功能
用户管理
房型管理
房屋信息管理
租赁管理
房屋合同管理
新闻管理
系统管理
四,核心代码展示
package dao;
import com.jntoo.db.utils.StringUtil;
import java.sql.*;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import util.Info;
/**
* 数据库连接类
*/
public class CommDAO {
// 数据库名称
public static final String database = "jspm12823fwzlxt";
// 数据库账号
public static final String username = "root";
// 数据库密码
public static final String pwd = "root";
// 是否为 mysql8.0及以上、如果是则把 false 改成 true
public static final boolean isMysql8 = false; // 是否为mysql8
public static Connection conn = null;
/**
* 创建类时即连接数据库
*/
public CommDAO() {
conn = this.getConn();
}
/**
* 数据库链接类
* @return
*/
public static Connection getConn() {
try {
if (conn == null || conn.isClosed()) {
String connstr = getConnectString();
conn = DriverManager.getConnection(connstr, username, pwd);
}
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static String getConnectString() {
try {
String connstr;
if (!isMysql8) {
Class.forName("com.mysql.jdbc.Driver");
connstr = String.format("jdbc:mysql://localhost:3306/%s?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true", database);
} else {
Class.forName("com.mysql.cj.jdbc.Driver");
connstr =
String.format(
"jdbc:mysql://localhost:3306/%s?useUnicode=true&characterEncoding=UTF-8&useSSL=FALSE&serverTimezone=UTC&useOldAliasMetadataBehavior=true",
database
);
}
return connstr;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 根据表ID 获取数据
* @param id 数值
* @param table 表名称
* @return
*/
public HashMap getmap(String id, String table) {
List<HashMap> list = new ArrayList();
try {
Statement st = conn.createStatement();
//System.out.println("select * from "+table+" where id="+id);
ResultSet rs = st.executeQuery("select * from " + table + " where id=" + id);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for (int j = 1; j <= i; j++) {
if (!rsmd.getColumnName(j).equals("ID")) {
String str = rs.getString(j) == null ? "" : rs.getString(j);
if (str.equals("null")) str = "";
map.put(rsmd.getColumnName(j), str);
} else map.put("id", rs.getString(j));
}
list.add(map);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list.get(0);
}
/**
* 根据sql 语句获取一行数据
* @param sql
* @return
*/
public HashMap find(String sql) {
HashMap map = new HashMap();
//List<HashMap> list = new ArrayList();
try {
Statement st = conn.createStatement();
System.out.println(sql);
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
//HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for (int j = 1; j <= i; j++) {
if (!rsmd.getColumnName(j).equals("ID")) {
String str = rs.getString(j) == null ? "" : rs.getString(j);
if (str.equals("null")) str = "";
map.put(rsmd.getColumnName(j), str);
} else map.put("id", rs.getString(j));
}
//list.add(map);
break;
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
}
return map;
}
/**
* 根据某字段的值获取一行数据
* @param nzd 字段名称
* @param zdz 条件值
* @param table 表
* @return
*/
public HashMap getmaps(String nzd, String zdz, String table) {
List<HashMap> list = new ArrayList();
try {
Statement st = conn.createStatement();
//System.out.println("select * from "+table+" where "+nzd+"='"+zdz+"'");
ResultSet rs = st.executeQuery("select * from " + table + " where " + nzd + "='" + zdz + "'");
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for (int j = 1; j <= i; j++) {
if (!rsmd.getColumnName(j).equals("ID")) {
String str = rs.getString(j) == null ? "" : rs.getString(j);
if (str.equals("null")) str = "";
map.put(rsmd.getColumnName(j), str);
} else map.put("id", rs.getString(j));
}
list.add(map);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list.get(0);
}
/**
* 获取前台提交的数据将数据写成Map<String , String> 形式,方便写入数据库
* @param request
* @return 返回值类型为Map<String, String>
*/
public static HashMap getParameterStringMap(HttpServletRequest request) {
Map<String, String[]> properties = request.getParameterMap(); //把请求参数封装到Map<String, String[]>中
HashMap returnMap = new HashMap<String, String>();
String name = "";
String value = "";
for (Map.Entry<String, String[]> entry : properties.entrySet()) {
name = entry.getKey();
String[] values = entry.getValue();
if (null == values) {
value = "";
} else {
value = StringUtil.join(",", values); //用于请求参数中请求参数名唯一
}
returnMap.put(name, value);
}
return returnMap;
}
/**
* 插入数据库
* @param request
* @param tablename
* @param extmap
* @return
*/
public String insert(HttpServletRequest request, String tablename, HashMap extmap) {
extmap.put("addtime", Info.getDateStr()); // 设置添加时间为当前时间
Query query = new Query(tablename); // 新建查询模块
HashMap post = getParameterStringMap(request); // 获取前台提交的数据将数据写成Map对象
post.putAll(extmap); // 扩展的数据以覆盖方式写到提交的数据中
return query.add(post); // 将数据生成sql insert语句,并执行,可以查看输出控制台中执行的SQL语句
}
/**
* 删除数据
* @param request
* @param tablename 表名称
*/
public void delete(HttpServletRequest request, String tablename) {
int i = 0;
try {
String did = request.getParameter("did");
if (did == null) did = request.getParameter("scid");
if (did == null) did = request.getParameter("id");
if (did != null) {
if (did.length() > 0) {
Statement st = conn.createStatement();
System.out.println("delete from " + tablename + " where id=" + did);
st.execute("delete from " + tablename + " where id=" + did);
st.close();
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
}
}
/**
* 获取某表一列数据
* @param table
* @return
*/
public String getCols(String table) {
String str = "";
Connection conn = this.getConn();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from " + table);
ResultSetMetaData rsmd = rs.getMetaData();
int i = rsmd.getColumnCount();
for (int j = 2; j <= i; j++) {
str += rsmd.getColumnName(j) + ",";
}
} catch (SQLException e) {
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
//e.printStackTrace();
}
str = str.substring(0, str.length() - 1);
return str;
}
/**
* 更新数据
* @param request
* @param tablename
* @param extmap
* @return
*/
public String update(HttpServletRequest request, String tablename, HashMap extmap) {
Query query = new Query(tablename);
HashMap post = getParameterStringMap(request);
post.putAll(extmap);
if (query.save(post)) {
return String.valueOf(post.get("id"));
}
return "";
}
/**
* 执行sql 语句
* @param sql
* @return
*/
public long commOper(String sql) {
System.out.println(sql);
long autoInsertId = -1;
try {
Statement st = conn.createStatement();
st.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = st.getGeneratedKeys();
while (rs.next()) {
autoInsertId = rs.getLong(1);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
}
return autoInsertId;
}
/**
* 执行多条SQL语句
* @param sql
*/
public void commOperSqls(ArrayList<String> sql) {
try {
conn.setAutoCommit(false);
for (int i = 0; i < sql.size(); i++) {
Statement st = conn.createStatement();
System.out.println(sql.get(i));
st.execute(sql.get(i));
st.close();
}
conn.commit();
} catch (SQLException e) {
try {
conn.rollback();
} catch (SQLException e1) {
//e1.printStackTrace();
int code = e1.getErrorCode();
String message = e1.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
}
e.printStackTrace();
} finally {
try {
conn.setAutoCommit(true);
} catch (SQLException e) {
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
//e.printStackTrace();
}
}
}
/**
* 根据SQL语句获取数据行
* @param sql
* @return
*/
public List select(String sql) {
System.out.println(sql);
List<HashMap> list = new ArrayList();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
HashMap map = new HashMap();
int i = rsmd.getColumnCount();
for (int j = 1; j <= i; j++) {
if (!rsmd.getColumnName(j).equals("ID")) {
String str = rs.getString(j) == null ? "" : rs.getString(j);
if (str.equals("null")) str = "";
map.put(rsmd.getColumnName(j), str);
} else map.put("id", rs.getString(j));
}
list.add(map);
}
rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
if (sql.equals("show tables")) list = select("select table_name from INFORMATION_SCHEMA.tables"); else {
int code = e.getErrorCode();
String message = e.getMessage();
System.err.println("SQL execute Error");
System.err.println("code:" + code);
System.err.println("Message:" + message);
}
//e.printStackTrace();
}
return list;
}
public void close() {}
/**
* 执行一条查询sql,以 List<hashmap> 的形式返回查询的记录,记录条数,和从第几条开始,由参数决定,主要用于翻页
* pageno 页码 rowsize 每页的条数
*/
public List select(String sql, int pageno, int rowsize) {
List<HashMap> list = new ArrayList();
List<HashMap> mlist = new ArrayList();
try {
list = this.select(sql);
int min = (pageno - 1) * rowsize;
int max = pageno * rowsize;
for (int i = 0; i < list.size(); i++) {
if (!(i < min || i > (max - 1))) {
mlist.add(list.get(i));
}
}
} catch (RuntimeException re) {
re.printStackTrace();
throw re;
}
return mlist;
}
public static void main(String[] args) {}
}
五,相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统