• 编写程序困惑的地方,及相应的解决方案【数据库的设计,时间格式的转换】


    问题1、在编写代码时,要注意前后的逻辑关系,当声明一个变量来接收获取到的值(对象、集合)时,要使用if条件判断一下,是否获取到的值为空,这样子会使编写的代码更加的严谨,比如:根据id查询用户,那么查得的用户有可能不存在,此时就应该给予一定的处理过程(抛异常或者给予一个提示{“该用户不存在”}什么的);

    问题2、对于遇到的时间问题,数据库中存储的是date类型,代码实体类中的字段类型也是date类型,进行插入操作时,如何进行,是否需要对其格式进行一定的转换,特别在加上前台的输入获取时,是否需要对其格式进行一定的转换?

      解答:项目测试中,当数据库表中某个字段类型是date,然后编写代码实体类中相应属性的类型也是date时,再进行插入插入操作,不需要再进行时间格式的转换;

      测试代码如下:

     1 //1、实体类【属性值及相应的set、get方法】
     2 private Date birth;
     3 public String getBirth(){}
     4 public void setBirth(){}
     5 //2、dao接口【注意:其中的方法名要与sqlMap配置文件中sql语句id值相同,】
     6        //插入用户信息(ok)
     7     public void insert(User user);    
     8         //删除用户信息【根据id】(ok)
     9     public void deleteByPrimaryKey(String id);
    10 //3、service接口【定义要实现的接口,其中方法名没有什么要求】
    11         public void insertUser(User user);
    12         public void deleteUserById(String id);
    13 //4、serviceImpl实现类【实现具体的功能,且与数据库进行了连接,实现功能】
    14       @Service("userService")
    15 public class UserServiceImpl implements UserService {
    16     
    17     private UserDao userDao;
    18     
    19     public UserDao getUserDao() {
    20         return userDao;
    21     }
    22     @Autowired
    23     public void setUserDao(UserDao userDao) {
    24         this.userDao = userDao;
    25     }
    26         //根据id删除用户信息
    27     public void deleteById(String id) {
    28         System.out.println("删除用户id"+id);
    29         System.out.println("用户信息的名字:"+userDao.selectByPrimaryKey(id).getName());
    30         userDao.deleteByPrimaryKey(id);
    31         System.out.println("已删除成功!!");
    32     }
    33     //插入用户信息【注意没有对其中的时间进行什么转换】
    34     public void insertUser(User user) {
    35         System.out.println("插入用户的相关的信息:"+user.getId()+user.getName()+user.getBirth()+user.getRoles());
    36         System.out.println("插入之前:");
    37         userDao.insert(user);
    38         System.out.println("插入之后:测试成功");
    39     }
    40 }
    41 //5、sqlMap配置文件编写具体的sql语句
    42 <!-- 插入用户信息 -->
    43     <insert id="insert" parameterType="fdx.model.User">
    44         insert into fdx.dbo.[User] (ID,NAME,PWD,BIRTH,ROLES) 
    45         values (#{id,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR},#{pwd,jdbcType=VARCHAR},#{birth,jdbcType=DATE},#{roles,jdbcType=VARCHAR})
    46     </insert>
    47 //6、编写的测试类【使用的是junit测试方法】
    48 public class TestMy {
    49     @Test
    50     public void test(){
    51         ApplicationContext ac = new ClassPathXmlApplicationContext(new String[] { "spring.xml", "spring-mybatis.xml"});
    52         UserService us = (UserService) ac.getBean("userService");
    53                 //插入【首先是随便的一个字符串<---->转换成:时间格式54                 //当然也可以直接获取当前系统时间进行插入操作
    55         String str = "1990-09-02";
    56         SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
    57         try {
    58         
    59             Date d = sf.parse(str);
    60             System.out.println("输出一:"+d);
    61             System.out.println("输出二:"+sf.format(d));
    62                         //之后就是进入到serviceimpl,service,dao等类进行与后台的操作
    63             User user =  new User("127","fdx","12345",d,"管理员");
    64             us.insertUser(user);
    65         
    66         } catch (Exception e) {
    67             // TODO Auto-generated catch block
    68             System.out.println("出现异常啦");
    69             e.printStackTrace();
    70         }
    71 
    72 测试结果是:
    73 Sun Sep 02 00:00:00 GMT+08:00 1990
    74 1990-09-02
    75 插入用户的相关的信息:127fdxSun Sep 02 00:00:00 GMT+08:00 1990管理员
    76 插入之前:
    77 插入之后:测试成功 

    问题3、还有就是在数据库中主键的设置,当进行插入操作时,id值是自增的

    【待解,测试中】

    问题4、批量删除操作sql语句的编写,及功能的实现;

    问题5、模糊插入操作sql语句的编写,及功能的实现;

    本人目前处于学习阶段,各位大神多多提宝贵的建议!
  • 相关阅读:
    [CF888G] Xor-mst (Trie 树,最小生成树)
    [JSOI2010]部落划分 (最小生成树)
    [USACO15FEB]Superbull (最小生成树)
    [APIO2009]抢掠计划 ($Tarjan$,最长路)
    [APIO2015] 雅加达的摩天楼 (分块,最短路)
    [USACO07NOV]牛继电器Cow Relays (最短路,DP)
    P1266 速度限制 (最短路,图论)
    C语言编程题目(1)字符串格式化操作 手机键盘次数统计
    MOCTF RE 暗恋的烦恼
    python 面向对象 私有化浅析
  • 原文地址:https://www.cnblogs.com/FanSunny/p/4831707.html
Copyright © 2020-2023  润新知