千锋第46天作业

UTILS

public class DBUtils {
    private static final Properties PROPERTIES = new Properties();
    //为当前线程绑定一个Connection连接。从头到尾
    private static final ThreadLocal<Connection> THREAD_LOCAL = new ThreadLocal<Connection>();

    static {
        InputStream is = DBUtils.class.getResourceAsStream("/db.properties");
        try {
            PROPERTIES.load(is);
            Class.forName(PROPERTIES.getProperty("driver"));
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //获取连接
    public static Connection getConnection() {
        //在ThreadLocal里取
        Connection connection = THREAD_LOCAL.get();
        try {
            //没有 ,新建
            if (connection == null) {
                connection = DriverManager.getConnection(PROPERTIES.getProperty("url"), PROPERTIES.getProperty("username"), PROPERTIES.getProperty("password"));
                THREAD_LOCAL.set(connection);//存在ThreadLocal里
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    //开启事务
    public static void begin() {
        Connection connection = getConnection();
        try {
            connection.setAutoCommit(false);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //提交事务
    public static void commit() {
        Connection connection = getConnection();
        try {
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeAll(connection, null, null);
        }
    }

    //回滚事务
    public static void rollback() {
        Connection connection = getConnection();
        try {
            connection.rollback();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeAll(connection, null, null);
        }
    }


    //释放资源
    public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
            if (statement != null) {
                statement.close();
            }
            if (connection != null) {
                connection.close();
                THREAD_LOCAL.remove();//关闭连接后,移除线程中绑定的连接对象。
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
public class DateUtils {
    private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    //字符串转Util
    public static java.util.Date strToUtilDate(String str) {
        try {
            return simpleDateFormat.parse(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //util转sql
    public static java.sql.Date utilToSql(java.util.Date date) {
        return new java.sql.Date(date.getTime());
    }
}
public class DaoUtils<T> {
    /**
     * 增删改方法
     */
    public int commonsUpdate(String sql, Object... args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
            connection = DBUtils.getConnection();
            preparedStatement = connection.prepareStatement(sql);
            for (int i = 0; i < args.length; i++) {
                preparedStatement.setObject(i + 1, args[i]);
            }
            return preparedStatement.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeAll(null, preparedStatement, null);
        }
        return 0;
    }

    /**
     * 查一个或查多个
     */
    public List<T> commonsSelect(String sql, RowMapper<T> rowMapper, Object... args) {
        List<T> elements = new ArrayList<T>();
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            connection = DBUtils.getConnection();
            preparedStatement = connection.prepareStatement(sql);
            if(args!=null){
                for (int i = 0; i < args.length; i++) {
                    preparedStatement.setObject(i + 1, args[i]);
                }
            }
            resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {

                elements.add(rowMapper.getRow(resultSet));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtils.closeAll(null, preparedStatement, resultSet);
        }
        return elements;
    }
}

ENTITY

public class Student {
    private int id;
    private String name;
    private String password;
    private String sex;
    private Date borndate;
    private String phone;

    public Student() {
    }

    public Student(int id, String name, String password, String sex, Date borndate, String phone) {
        this.id = id;
        this.name = name;
        this.password = password;
        this.sex = sex;
        this.borndate = borndate;
        this.phone = phone;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Date getBorndate() {
        return borndate;
    }

    public void setBorndate(Date borndate) {
        this.borndate = borndate;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @Override
    public String toString() {
        return
                "学号:" + id +
                        ", 学生姓名:" + name +
                        ", 密码:" + password +
                        ", 性别:" + sex +
                        ", 出生日期:" + borndate +
                        ", 电话:" + phone;
    }
}

DAO

import java.util.List;

public class StudentDaoImpl implements StudentDao {
    DaoUtils<Student> daoUtil = new DaoUtils<Student>();


    @Override
    public int insert(Student stu) {
        String sql = "insert into t_student(id,name,password,sex,borndate,Phone) values(?,?,?,?,?,?);";
        return daoUtil.commonsUpdate(sql,new Object[]{stu.getId(),stu.getName(),stu.getPassword(),stu.getSex(), DateUtils.utilToSql(stu.getBorndate()),stu.getPhone()});
    }

    @Override
    public int update(Student stu) {
        String sql = "update t_student set name = ?,password = ?,sex = ?,borndate = ?,Phone = ? where  id = ?;";
        return daoUtil.commonsUpdate(sql,new Object[]{stu.getName(),stu.getPassword(),stu.getSex(), DateUtils.utilToSql(stu.getBorndate()),stu.getPhone(),stu.getId()});
    }

    @Override
    public int delete(int id) {
        String sql = "delete from t_student where id = ?;";
        return daoUtil.commonsUpdate(sql,id);
    }

    @Override
    public Student select(int id) {
        List<Student> list = daoUtil.commonsSelect("select * from t_student where id = ?;",new StudentRowMapper(),id);
        if (list != null) {
            return list.get(0);
        }
        return null;
    }

    @Override
    public List<Student> selectAll() {
        String sql = "select * from t_student";
        return daoUtil.commonsSelect(sql,new StudentRowMapper(),new Object[]{});
    }
}
public interface StudentDao {
    int insert(Student student);
    int update(Student student);
    int delete(int id);
    Student select(int id);
    List<Student> selectAll();
}

SERVICE

public class StudentServiceImpl implements StudentService {

    private Connection connection = null;
    private PreparedStatement preparedStatement = null;
    private ResultSet resultSet = null;

    private StudentDao studao = new StudentDaoImpl();

    @Override
    public String insert() {
        String result = "注册失败";
        try {
            DBUtils.begin();
            Student stu = getStudent();
            int i = studao.insert(stu);
            if (i > 0) {
                DBUtils.commit();
                result = "注册成功";
            }
        } catch (Exception e) {
            DBUtils.rollback();
        }
        return result;
    }

    @Override
    public String delete(int id) {
        String result = "删除失败";
        try {
            DBUtils.begin();
            int i = studao.delete(id);
            if (i > 0) {
                DBUtils.commit();
                result = "删除成功";
            }
        } catch (Exception e) {
            DBUtils.rollback();
        }
        return result;
    }

    @Override
    public String update(int id) {
        String result = "更新失败";
        try {
            DBUtils.begin();
            Student checkstu = studao.select(id);
            if (checkstu == null) {
                throw new RuntimeException("目标id不存在");
            }
            Student stu = getStudent();
            stu.setId(checkstu.getId());
            int i = studao.update(stu);
            if (i > 0) {
                DBUtils.commit();
                result = "更新成功";
            }
        } catch (Exception e) {
            DBUtils.rollback();
        }
        return result;
    }

    @Override
    public String login(int id, String password) {
        String result = "登录失败";
        try {
            DBUtils.begin();
            Student stu = studao.select(id);
            if (stu == null) {
                throw new RuntimeException("用户名错误");
            }
            if (stu.getPassword().equals(password)) {
                DBUtils.commit();
                result = "登陆成功";
            } else {
                result = "密码不正确";
            }
        } catch (Exception e) {
            DBUtils.rollback();
        }
        return result;
    }

    @Override
    public String showStudent(int id) {
        String result = "查询失败";
        try {
            DBUtils.begin();
            Student stu = studao.select(id);
            if (stu != null) {
                DBUtils.commit();
                return stu.toString();
            }
        } catch (Exception e) {
            DBUtils.rollback();
        }
        return result;
    }

    @Override
    public String showAllStudent() {
        String result = "查询失败";
        try {
            DBUtils.begin();
            List<Student> list = studao.selectAll();
            if (list != null) {
                DBUtils.commit();
                for (Student stu : list) {
                    System.out.println(stu.toString());
                }
                result = "查询完毕";
            }
        } catch (Exception e) {
            DBUtils.rollback();
        }
        return result;
    }

    @Override
    public Student getStudent() {
        Student stu = new Student();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名");
        stu.setName(sc.next());
        System.out.println("请输入密码");
        stu.setPassword(sc.next());
        System.out.println("请输入性别(男/女)");
        stu.setSex(sc.next());
        System.out.println("请输入生日(格式:yyyy-MM-dd)");
        stu.setBorndate(DateUtils.strToUtilDate(sc.next()));
        System.out.println("请输入手机号");
        stu.setPhone(sc.next());
        return stu;
    }
}
public interface StudentService {
    public String insert();
    public String delete(int id);
    public String update(int id);
    public String login(int id , String password);
    public String showStudent(int id);
    public String showAllStudent();
    public Student getStudent();

}

TEST

public class TestStudent {
    public static void main(String[] args) {
        StudentService s = new StudentServiceImpl();
        int choice = 0;
        do {
            System.out.println("1.添加学生 2.删除学生 3.修改学生信息 4.学生登陆 5.查询单个学生 6.查询所有学生 0.退出");
            Scanner sc = new Scanner(System.in);
            choice = sc.nextInt();
            switch (choice){
                case 1:
                    System.out.println(s.insert());
                    break;
                case 2:
                    System.out.println("请输入id");
                    System.out.println(s.delete(sc.nextInt()));
                    break;
                case 3:
                    System.out.println("请输入id");
                    System.out.println(s.update(sc.nextInt()));
                    break;
                case 4:
                    System.out.println("请输入id");
                    int id = sc.nextInt();
                    System.out.println("请输入密码");
                    String password = sc.next();
                    System.out.println(s.login(id,password));
                    break;
                case 5:
                    System.out.println("请输入id");
                    System.out.println(s.showStudent(sc.nextInt()));
                    break;
                case 6:
                    System.out.println(s.showAllStudent());
                    break;
                case 0:
                    break;
            }
        }while (choice != 0);
        System.out.println("退出系统");
    }
}

HTML综合案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>综合案例</title>
	</head>
	<body>
		<!--头部-->
		<div>
			<table width="100%" align="center">
				<tr>
					<td align="left">
						千锋教育-稀有的坚持全程面授品质的大型IT教育机构
					</td>
					<td align="right">
						<a>好程序员特训营&nbsp;&nbsp;</a>
						<a>JavaEE分布式开发&nbsp;&nbsp;</a>
						<a>JavaSE核心基础&nbsp;&nbsp;</a>
						<a>加入我们</a>
					</td>
				</tr>
				<tr>
					<td>
						<img src="img/new_logo.png" />
					</td>
					<td align="right">
						<img src="img/nav_r_ico.png" />
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<hr/>
						<span>首页&nbsp;&nbsp;</span>
						<span>课程培训&nbsp;&nbsp;</span>
						<span>教学保障&nbsp;&nbsp;</span>
						<span>免费视频&nbsp;&nbsp;</span>
						<span>公开课&nbsp;&nbsp;</span>
						<span>企业合作&nbsp;&nbsp;</span>
						<span>就业喜报&nbsp;&nbsp;</span>
						<span>学员天地&nbsp;&nbsp;</span>
						<span>关于千锋&nbsp;&nbsp;</span>
						<span>加入我们</span>
						<hr />
					</td>
				</tr>
				<tr>
					<td colspan="2" align="right">
						首页>课程培训>JavaEE列表
					</td>
				</tr>
			</table>
		</div>
		<!--中间部分-->
		<div>
			<table>
				<tr>
					<td>
						<h3>课程培训</h3>
						<h4>108种课程内容</h4>
					</td>
				</tr>
				<tr>
					<td>
						<hr />
						<img src="img/001.png" />
					</td>
				</tr>
			</table>
			<table align="center" width="100%">
				<tr align="center">
					<td>
						<img src="img/002.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/003.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/004.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/005.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/006.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
				</tr>
				<tr align="center">
					<td>
						<img src="img/007.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/008.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/009.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/010.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
					<td>
						<img src="img/011.png" /><br />
						<div align="center">书名:XXX</div>
						<div align="center">售价:180</div>
					</td>
				</tr>
			</table>
		</div>
		<!--底部-->
		<div>
			<table width="90%" align="center">
				<tr>
					<td><img src="img/012.png" /></td>
				</tr>
			</table>	
		</div>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值