出版社--图书管理系统

1.需求

已知如下两个表:

create table publisher(
       id char(36) primary key,
       name varchar(24) unique,
       address varchar(120)
)  
create table book(
       id char(36) primary key,
       isbn varchar(12) unique,
       name varchar(24),
       publisher_id char(36),
       foreign key(publisher_id) references publisher(id)
)

完成下面功能:

欢迎进入书籍管理系统
    1、出版社管理:增、删、改、查
    2、书籍管理:增、删、改、查
    3、退出

2. 使用log4j.properties 文件


# DEBUG设置输出日志级别,由于为DEBUG,所以ERROR、WARN和INFO 级别日志信息也会显示出来
log4j.rootLogger=DEBUG,RollingFile

#每天产生一个日志文件(RollingFile)  
log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender

#当天的日志文件全路径
log4j.appender.RollingFile.File=d:/logs/sirius.log

#服务器启动日志是追加,false:服务器启动后会生成日志文件把老的覆盖掉
log4j.appender.RollingFile.Append=true

#日志文件格式  
log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout  
log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p %-40.40c %X{traceId}-%m%n
log4j.appender.RollingFile.Threshold=DEBUG

#设置每天生成一个文件名后添加的名称,备份名称:sirius.log.年月日时分.log
log4j.appender.RollingFile.DatePattern='.'yyyy-MM-dd-HH-mm'.log'

通过使用Log4j,可以控制日志信息格式及其输送目的地(控制台、文件、数据库等),方便的对项目中的日志进行处理,方便后期查找系统运行期间出现的问题,进而便于维护系统。

3. 使用db.properties  文件

url=jdbc:mysql://127.0.0.1:3306/test
user_name=root
password=root

  通常情况下,我们的项目完成后上线然后通过域名访问。在上线过程中项目组长通常是创建var包打包交给运维处理。为了后期便于配置管理软件,常将诸如数据库连接配置(url、用户名和密码)、上传文件保存路径等配置信息写在Properties文件(拓展名为properties)中。最好不要将用户名、密码等信息写死在一个类中,无法修改数据库信息。将其写入properties文件中可以防止上述情况。

 4. PropertiesUtil类

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class PropertiesUtil {
	
		private static Properties properties = new Properties();
		static {
		InputStream inputStream = PropertiesUtil.class.getClassLoader().getResourceAsStream("db.properties");
		
		try {
			properties.load(inputStream);
		} catch (IOException e) {
			e.printStackTrace();
		}
		}
		
		public String getValue(String key) {
			return properties.getProperty(key);			
		}
}

开发中不止一个Java类需要将某些日志信息写入指定位置,此时每个类中都会重复性地写入如下代码,为了提高代码的重用性,可以将其写入一个PropertiesUtil类中。

5. DBUtil 类

package com.zzu.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.log4j.Logger;

/**
 * 数据库工具类
 *
 * @author 刘莹
 */
public class DButil {

	private static Logger logger=Logger.getLogger(DButil.class);
	/**
	 * 使用静态代码块加载数据驱动
	 * 
	 * @刘莹
	 */
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			logger.debug(e.getMessage(),e);
		}
	}

	/**
	 * 获取数据库连接
	 * 
	 * @刘莹
	 */
	private static Connection getConnection() {
		try {
			PropertiesUtil pu = new PropertiesUtil();
			String url = pu.getValue("url");
			String user_name = pu.getValue("user_name");
			String password = pu.getValue("password");
			return DriverManager.getConnection(url, user_name, password);
		} catch (Exception e) {
			logger.debug(e.getMessage(),e);
		}
		return null;
	}

	/**
	 * 数据库更新操作---增删改
	 *
	 * @author 刘莹
	 */
	public static boolean update(String sql) {
		Connection connection = null;
		Statement statement = null;
		try {
			connection = getConnection();
			statement = connection.createStatement();
			return statement.executeUpdate(sql) > 0;
		} catch (Exception e) {
			logger.debug(e.getMessage(),e);
		} finally {
			close(statement, connection);
		}

		return false;
	}

	/**
	 * 数据库查询操作
	 *
	 * 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值