zoukankan      html  css  js  c++  java
  • 项目(1)----用户信息管理系统(2)---项目开发(数据管理层)

       项目开发(1)    

    这里实现下面三个步骤: 

          2.0建立数据库

          2.1开发实体User 对象

          2.2开发工具类 JDBCUtils

          2.3开发DAO接口 和实现类

      2.0建立数据库

    create table t_user(
      id  varchar2(37) ,
      username varchar2(30),
      password varchar2(30) not null,
      email varchar2(30),
      birthday varchar2(30),
      preference varchar2(30),
      type   varchar2(30),
      description  varchar2(30)
      )

      2.1开发实体User 对象    

    import java.util.Date;
    
    public class User {
        private String id;
    
        private String username;
    
        private String password;
    
        private String email;
    
        private String birthday;
    
        private String preference;
    
        private String type;
    
        private String description;
    }
    //同时提供set和get,toString方法

       2.2开发工具类 JDBCUtils

     1 import java.io.IOException;
     2 import java.io.InputStream;
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.PreparedStatement;
     6 import java.sql.ResultSet;
     7 import java.sql.SQLException;
     8 import java.sql.Statement;
     9 import java.util.Properties;
    10 
    11 import oracle.net.aso.p;
    12 
    13 public class JDBCUtils {
    14 
    15     /**
    16      * 
    17      * DriverManager是驱动的管理类 1)可以通过重载的getConnection()方法 获取数据库连接 较为访问 2)可以管理多个驱动
    18      * 如果注册了多个数据库连接 则调用的getConnection()方法 方法 传入的参数可以返回不同的数据库连接
    19      * 
    20      * 建立与数据库的连接
    21      */
    22     public static Connection getConnection() {
    23         Connection conn = null;
    24 
    25         Properties properties = new Properties();
    26         InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream(
    27                 "jdbc.properties");//通过jdbc.properties把信息写在外面体现出java的可塑性
    28         try {
    29             properties.load(in);
    30         } catch (IOException e1) {
    31             e1.printStackTrace();
    32         }
    33 
    34         String username = properties.getProperty("jdbc.username");
    35         String password = properties.getProperty("jdbc.password");
    36         String url = properties.getProperty("jdbc.url");
    37         String driver = properties.getProperty("jdbc.driver");
    38 
    39         try {
    40             // 2.获取连接 加载驱动
    41             Class.forName(driver);
    42             conn = DriverManager.getConnection(url, username, password);
    43         } catch (ClassNotFoundException e) {
    44             e.printStackTrace();
    45         } catch (SQLException e) {
    46             e.printStackTrace();
    47         }
    48         return conn;
    49     }    
    50 
    51     public static void main(String[] args) {
    52         System.out.println(getConnection());   //如果显示是一群类似oracle.jdbc.driver.T4CConnection@6a8c436b,那就说明连接成功
    53     }
    54 
    55 }

    在jdbc.properties中配置

    jdbc.username=hzgg     //数据库用户名
    jdbc.password=hzgg     //数据库密码
    jdbc.url=jdbc:oracle:thin:@localhost:1521:ORCL  //连接的url
    jdbc.driver=oracle.jdbc.driver.OracleDriver  //driver驱动

    2.3-1开发DAO接口 

    import java.util.List;
    
    import com.study.user.model.User;
    
    public interface UserDao {
     
        public void add(User user);     //注册用户
        
        public void del(String id);     //删除用户
        
        public void update(User user); //更新用户
         
        public User  find(String id);  //查找单个用户
        
        public List<User> getAll();    //查找所有用户
       
    }

       2.3-2开发实现DAO接口的类        

      1 import java.sql.Connection;
      2 import java.sql.SQLException;
      3 import java.util.List;
      4 
      5 import javax.management.RuntimeErrorException;
      6 
      7 import org.apache.commons.dbutils.QueryRunner;
      8 import org.apache.commons.dbutils.handlers.BeanHandler;
      9 import org.apache.commons.dbutils.handlers.BeanListHandler;
     10 
     11 import com.study.user.dao.UserDao;
     12 import com.study.user.model.User;
     13 import com.study.user.util.JDBCUtils;
     14 
     15 public class UserDaoImpl implements UserDao {
     16 
     17     private QueryRunner queryRunner = new QueryRunner(); //这个就是dbutils包中的,它的功能十分强大
     18     /*
     19      * 添加用户
     20      */
     21     public void add(User user) {
     22         Connection connection = null;
     23         try {
     24             connection = JDBCUtils.getConnection(); //建立与数据库的连接
     25 
     26             String sql = "insert into t_user(id,username,password,email,birthday,preference,type,description)"
     27                     + "values (?,?,?,?,?,?,?,?)";
     28 
     29             Object[] params = { user.getId(), user.getUsername(), user.getPassword(), user.getEmail(),
     30                     user.getBirthday(), user.getPreference(), user.getType(), user.getDescription() };
     31 
     32             queryRunner.update(connection, sql, params);
     33 
     34         } catch (SQLException e) {
     35             e.printStackTrace();
     36         }
     37     }
     38    /*
     39     * 通过用户id删除用户
     40     */
     41     public void del(String id) {
     42         String sql="delete from t_user  where id=?";
     43         Connection conn=null;
     44         try {
     45             conn=JDBCUtils.getConnection();
     46             //2.使用queryRuner类执行update
     47             queryRunner.update(conn, sql, id);//有几个问号就在后面输几个参数
     48         } catch (Exception e) {
     49             e.printStackTrace();
     50         }
     51     }
     52   /* 
     53    * 更新用户
     54    */
     55     public void update(User user) {
     56         
     57         String sql="update t_user set id=?,username=?,password=?,email=?,birthday=?,preference=?,type=?,description=?   where id =?";
     58         Connection conn=null;
     59         try {
     60             conn=JDBCUtils.getConnection();
     61              Object[] params = {user.getUsername(),user.getPassword(),user.getEmail(),
     62                      user.getBirthday(),user.getPreference(),user.getType(),user.getDescription(),user.getId() };
     63             //2.使用queryRuner类执行update
     64             queryRunner.update(conn, sql, params);
     65         } catch (Exception e) {
     66             e.printStackTrace();
     67         }
     68     }
     69   /*
     70    * 通过用户id,查找单个用户
     71    */
     72     public User find(String id) {
     73         String sql="select * from t_user where id=?";
     74         Connection conn=null;
     75         try {
     76             conn=JDBCUtils.getConnection();
     77             User stu =queryRunner.query(conn, sql, new BeanHandler<User>(User.class),id);//有几个问号就可以在后面输入几个值 new BeanHandler<对象>(当前对象.student)
     78              return stu;
     79         } catch (SQLException e) {
     80              throw new RuntimeException();
     81         }        
     82     }  
     83     /*
     84      * 查询所有用户
     85      */
     86     public List<User> getAll() {
     87 
     88         Connection connection = null;
     89         try {
     90             connection = JDBCUtils.getConnection();
     91 
     92             String sql = "select * from t_user";
     93 
     94             return queryRunner.query(connection, sql, new BeanListHandler<User>(User.class));
     95 
     96         } catch (SQLException e) {
     97             throw new RuntimeException();
     98         }
     99     }
    100   }

                             

  • 相关阅读:
    MIME类型大全
    Asp.net中解决“请求超时”的问题
    C#日期函数所有样式大全
    [转]Oracle数据关联查询
    convert时间格式转换参数表 [收藏]
    vs2008安装失败。解决办法。部分。
    asp.net获取web.config配置信息
    jQuery UI Dialog控件中的表单无法正常提交的解决方法
    控制Button在数据验证成功才执行后台方法
    关于使用DataTable.Compute()方法时报“聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数。”
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/6416817.html
Copyright © 2011-2022 走看看