classic code review
- package dao;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import entity.UserInfo;
- import util.DBConnection;
- //DAO:Data Access Object
- //完成对表userinfo的增删改查(CURD)功能
- public class UserInfoDAO {
- // 查询全部
- public List<UserInfo> selectAll() throws SQLException {
- List<UserInfo> users = new ArrayList<UserInfo>();
- String sql = "select * from userinfo";
- // 1. 获取数据库连接
- Connection connection = DBConnection.getConnection();
- // 2. 创建Statement,执行SQL语句
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(sql);
- // 3. 处理结果集
- while (rs.next()) {
- UserInfo user = new UserInfo();
- user.setName(rs.getString("name"));
- user.setPassword(rs.getString("password"));
- user.setAge(rs.getInt("age"));
- user.setSex(rs.getString("sex"));
- user.setBirthday(new Date(rs.getDate("birthday").getTime()));
- users.add(user);
- }
- // 4. 释放资源
- rs.close();
- stmt.close();
- connection.close();
- return users;
- }
- public UserInfo selectByName(String name) throws SQLException {
- String sql = "select * from userinfo where name='" + name + "'";
- // 1. 获取数据库连接
- Connection connection = DBConnection.getConnection();
- // 2. 创建Statement,执行SQL语句
- Statement stmt = connection.createStatement();
- ResultSet rs = stmt.executeQuery(sql);
- // 3. 处理结果集\
- UserInfo user = null;
- if (rs.next()) {
- user = new UserInfo();
- user.setId(rs.getInt("userid"));
- user.setName(rs.getString("name"));
- user.setPassword(rs.getString("password"));
- user.setAge(rs.getInt("age"));
- user.setSex(rs.getString("sex"));
- user.setBirthday(rs.getDate("birthday"));
- }
- // 4. 释放资源
- rs.close();
- stmt.close();
- connection.close();
- return user;
- }
- // 按条件查询
- public List<UserInfo> selectBySex(String sex) throws SQLException {
- List<UserInfo> users = new ArrayList<UserInfo>();
- String sql = "SELECT * FROM userinfo WHERE sex=?";
- // 1. 获取数据库连接
- Connection connection = DBConnection.getConnection();
- // 2. 创建Statement,执行SQL语句
- PreparedStatement pstmt = connection.prepareStatement(sql);
- pstmt.setString(1, sex);
- ResultSet rs = pstmt.executeQuery(sql);
- // 3. 处理结果集
- while (rs.next()) {
- UserInfo user = new UserInfo();
- user.setName(rs.getString("name"));
- user.setPassword(rs.getString("password"));
- user.setAge(rs.getInt("age"));
- user.setSex(rs.getString("sex"));
- user.setBirthday(new Date(rs.getDate("birthday").getTime()));
- users.add(user);
- }
- // 4. 释放资源
- rs.close();
- pstmt.close();
- connection.close();
- return users;
- }
- // 增加
- public int insert(UserInfo user) throws SQLException {
- String sql = "insert into userinfo(name,password,age,sex,birthday) values(?,?,?,?,?)";
- // 1. 获取数据库连接
- Connection connection = DBConnection.getConnection();
- // 2. 创建PreparedStatement
- PreparedStatement pstmt = connection.prepareStatement(sql);
- // 3. 给PreparedStatement的参数赋值
- pstmt.setString(1, user.getName());
- pstmt.setString(2, user.getPassword());
- pstmt.setInt(3, user.getAge());
- pstmt.setString(4, user.getSex());
- pstmt.setDate(5, new java.sql.Date(user.getBirthday().getTime()));
- // 4. 执行SQL语句
- int num = pstmt.executeUpdate();
- // 5. 释放资源
- pstmt.close();
- connection.close();
- return num;
- }
- // 修改密码
- public int update(String name, String password) throws SQLException {
- String sql = "update userinfo set password=? where name=?";
- // 1. 获取数据库连接
- Connection connection = DBConnection.getConnection();
- // 2. 创建PreparedStatement
- PreparedStatement pstmt = connection.prepareStatement(sql);
- // 3. 给PreparedStatement的参数赋值
- pstmt.setString(1, password);
- pstmt.setString(2, name);
- // 4. 执行SQL语句
- int num = pstmt.executeUpdate();
- // 5. 释放资源
- pstmt.close();
- connection.close();
- return num;
- }
- public int delete(String name) throws SQLException {
- String sql = "delete from userinfo where name=?";
- // 1. 获取数据库连接
- Connection connection = DBConnection.getConnection();
- // 2. 创建PreparedStatement
- PreparedStatement pstmt = connection.prepareStatement(sql);
- // 3. 给PreparedStatement的参数赋值
- pstmt.setString(1, name);
- // 4. 执行SQL语句
- int num = pstmt.executeUpdate();
- // 5. 释放资源
- pstmt.close();
- connection.close();
- return num;
- }
- public static void main(String[] args) {
- UserInfoDAO dao = new UserInfoDAO();
- try {
- List<UserInfo> users = dao.selectAll();
- System.out.println(users);
- users = dao.selectBySex("男");
- System.out.println(users);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Date date = sdf.parse("1998-01-01");
- UserInfo user = new UserInfo(3, "niit", "123456", 18, "男", date);
- int num = dao.insert(user);
- if (num >= 0) {
- System.out.println("插入成功");
- }
- } catch (SQLException | ParseException e) {
- e.printStackTrace();
- }
- }
- }
1.格式不标准
2.注释不够详细具体
1.输入的时候,不知道输入的是否数字呢,怎么能用 sc.nextDouble()来获取浮点数呢?
2.判断数字的正则表达式好像有点问题
classic code review的更多相关文章
- 我们是怎么做Code Review的
前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
- Git和Code Review流程
Code Review流程1.根据开发任务,建立git分支, 分支名称模式为feature/任务名,比如关于API相关的一项任务,建立分支feature/api.git checkout -b fea ...
- 如何搭建开源code review gerrit服务器
搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...
- Code Review Tools
Code Review中文应该译作“代码审查”或是“代码评审”,这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻 ...
- code review作业
下面是对结对编程队友12061166 宋天舒的code review 五个优点: 1.代码的风格优秀,注释不多,但是必要的注释还是有的,比如: // 三种模式 // mode1仅统计单个单词 // m ...
- 15个最佳的代码评审(Code Review)工具
代码评审可以被看作是计算机源代码的测试,它的目的是查找和修复引入到开发阶段的应用程序的错误,提高软件的整体素质和开发者的技能.代码审查程序以各种形式,如结对编程,代码抽查等.在这个列表中,我们编制了1 ...
- Code Review 五问五答
Code Review 是什么? Code Review即代码审查,程序猿相互审核对方的代码. Code Review能获得什么好处? 提高代码可维护性 你写的代码不再只有编译器看了,你得写出审核人能 ...
- 大家是怎么做Code Review的?
先说说我们公司现在的做法,一个团队被人为地分为两个阵营:Senior Developers和Junior Developers,比例差不多是1:1,Senior Developers就担负着对Juni ...
随机推荐
- flask 第四章 偏函数 Local空间转时间 myLocalStack RunFlask+request 请求上下文
1 . 偏函数 (partial) from functools import partial def func(*args,**kwargs): a=args b=kwargs return a,b ...
- ROS机器人导航仿真(kinetic版本)
准备工作: ubuntu 16.04系统;ROS kinetic版本;ROS包turtlebot,导航包rbx1,模拟器arbotix,可视化rviz 1.安装ubuntu 16.04系统与安装ROS ...
- python中的unique()
a = np.unique(A) 对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表 import numpy as np A = [1, ...
- centos7 无界面静默安装 oracle
环境准备 Centos7.3.64 64位 这里使用的是阿里云 ECS主机(1核,2G内存,40G硬盘) Oracle 11g R2 64位安装介质(版本11.2.0.1)下载地址:http:/ ...
- 《Swell数学》用户故事
一.用户故事基础知识: 1. 从用户的角度来描述用户渴望得到的功能. 2. 用户故事是描述对用户有价值的功能,好的用户故事应该包括角色.功能和商业价值三个要素. 3. 一个用户故事只是以客户能够明白的 ...
- Django中views笔记
reverse反解析 #路由中定义namespace.name,reverse可将其转换为url url = reverse('namespace:name') return redirect(url ...
- 结对作业收获_core组
收获:编码之前必须的思考是逃不掉的,而且这一步是磨刀不误砍柴工,而且会加速以后的步骤 分析: 首要重要的事情是:需要完成的功能,理清逻辑关系.我们要随机产生一定要求的算式,并且计算出算式的值. 其次的 ...
- php字符串转数组
下面代码包括了含有中文汉字的字符. function str2arr($str) { $length = mb_strlen($str, 'utf-8'); $array = []; for ($i= ...
- python中filter,reduce,map的用法
filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回Tr ...
- Oracle启动和关闭数据库
本机只安装一个数据库的情况下sqlplus / as sysdba启动数据库startup关闭数据库shutdown immediate