zoukankan      html  css  js  c++  java
  • Java_开发准备

    保证Oracle两个服务打开:

      监听服务:OracleOraDb11g_home1TNSListener

      实例服务:OracleServiceMLDN

    新建一个项目,随后配置好数据库驱动程序。右键项目,属性,Java Build Path,Libraies,Add External JARs,添加ojdbc6.jar。 

     开发数据库连接类

     JDBC操作需要有连接,以及链接必须进行关闭的操作,单独建立一个专门连接数据库的类,此类特点:

      1.这个类只负责数据库的连接与关闭,而不关心具体的数据库操作

      2.如果实例化了这个类的对象,那么就意味着要进行数据库的连接,可以在构造方法中连接

      3.项目中如果数据库连接有问题,一定所有代码都出现问题。  

    但是项目的开发需要存在有包,现在假设整个项目父包名称:cn.mldn。那么负责数据库连接的类,将其放在dbc子包中。

    范例:定义DatabaseConnection工具类

    package DatabaseConnection;
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    /*本类负责数据库的连接操作,在进行被类对象实例化时自动进行数据库的连接处理
     * */
    public class DatabaseConnection {
        private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver"; //
        private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:orcl";
        private static final String DBUSER = "scott";
        private static final String PASSWORD = "123456";
        private Connection conn = null;
        /*
         * 在构造方法调用时将进行数据库连接对象的取得
         * */
        public DatabaseConnection() {
             try{
                 Class.forName(DBDRIVER);//加载数据库的驱动程序
                 this.conn = DriverManager.getConnection(DBURL,DBUSER,PASSWORD);
             }catch (Exception e) {
                 e.printStackTrace();
             }
             
        }
        /*
         * 取得数据库连接对象
         * 实例化的Connection对象,如果返回null,表示没有连接成功
         * */
        public Connection getConnection() {
            return this.conn;
        }
        /*
         * 进行数据库关闭操作
         * */
        public void close() {
            if(this.conn != null) {
                try{
                    this.conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

    如果以后要更换数据库,那么更换连接信息即可。

    以上的设计属于最简化设计,最早DAO设计模式出现的时候有一个要解决的头等问题:数据库的可移植性。所以对于数据库连接操作,也需要考虑到这些情况。

    简单Java类 

    1.简单java类的名称一定要与实体表名称对应

      命名要求,如果表明:student_info, 那么就转换为StudentInfo,有些人设计表时喜欢在前面追加一个字母“T”,例如:t_student,那么将t忽略。

    2.有可能出现传输需求,那么类一定要实现Serializable接口。

    3.类中不许使用基本数据类型,统一使用包装类描述。

      包装类本身有null的特点

    4.类中属性一定使用private封装,一定按要求编写setter getter方法

    5.类中可以定义有任意多个构造方法,但一定要保留有无参构造方法

    6.类中可以有选择的覆写equal()、hashCode()、toString()方法

    可以将所有java类成为VO(PO、TO、POJO),可以将该种类保存在xxx.vo在包中 

    范例:定义Emp.java类

    
    
    package xxx.vo;
    
    import java.io.Serializable;
    import java.util.Date;
    
    @SuppressWarnings("serial")
    public class Emp implements Serializable {
        private Integer empno;
        private String ename;
        private String job;
        private Date hiredate;
        private Double sal;
        private Double comm;
        public Integer getEmpno() {
            return empno;
        }
        public void setEmpno(Integer empno) {
            this.empno = empno;
        }
        public String getEname() {
            return ename;
        }
        public void setEname(String ename) {
            this.ename = ename;
        }
        public String getJob() {
            return job;
        }
        public void setJob(String job) {
            this.job = job;
        }
        public Date getHiredate() {
            return hiredate;
        }
        public void setHiredate(Date hiredate) {
            this.hiredate = hiredate;
        }
        public Double getSal() {
            return sal;
        }
        public void setSal(Double sal) {
            this.sal = sal;
        }
        public Double getComm() {
            return comm;
        }
        public void setComm(Double comm) {
            this.comm = comm;
        }
        @Override
        public String toString() {
            return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", hiredate=" + hiredate + ", sal=" + sal
                    + ", comm=" + comm + "]";
        }
        
    }
    以后还可以在简单java类中设置关系。

      

  • 相关阅读:
    mac os 添加用户到组 命令
    mac下 codeigniter在apache下去掉index.php
    chrome的timeline中stalled问题解析
    Message Queue vs. Web Services?
    使用bootstrap框架的模态框与ckeditor产生冲突,ckeditor的弹出窗不可用时的解决方法
    file_get_contents微信头像等待时间过长的原因
    javascript学习笔记
    javascript学习笔记
    javascript学习笔记
    javascript学习笔记
  • 原文地址:https://www.cnblogs.com/lonske/p/8890476.html
Copyright © 2011-2022 走看看