Paparazzi

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1. 本周学习总结#

1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容。##

数据库是为了实现一定目的按某种规则组织起来的“数据”的“集合”。常见的数据库管理软件有很多,我们主要用的是MySQL。
MySql数据库简单操作:一. 启动与退出 1.启动MySQL Command Line Client(MySQL的控制台界面),直接输入安装时的密码即可。此时的提示符为:mysql>.2. 退出MySQL:quit或exit
库操作:显示所有数据库: show databases; 创建数据库:     create database test; 删除数据库:     drop database test;连接数据库:     use test;查看当前连接的数据库: select database();当前数据库包含的表:  show tables; 
三、表操作2.删除表  drop table students; 3.插入数据 insert into students(stuno,name,gender,birthdate,major,age) values('201010001', 'zhangsan', 'm', '1992-10-01','cs',25);4. 查询表中的数据 select * from students;5. 删除表中数据删除students表中编号为1 的记录delete from students where id = 1; 

JDBC简介:我们刚才是以命令行的方式来操作数据库?那么怎样使用java代码来操作数据库呢?可以使用Java中的JDBC API.java.sql.DriverManager:加载驱动、建立连接作用:载入各种不同的JDBC驱动
java.sql.Connection  :数据库连接
java.sql.Statement   :处理连接中的SQL语句
java.sql.ResultSet   :处理结果集

JDBC编程一般步骤
1.与数据库建立连接(Connection)
2.向数据库发送SQL语句(statement)
3.获得和处理查询或更新语句返回的结果	
注:使用查询语句可获得ResultSet
4.关闭连接,释放资源
一般来说ResultSet、Statement、Connection使用完后要立刻关闭



2. 书面作业#

Q1 MySQL数据库基本操作##

建立数据库,将自己的姓名、学号作为一条记录插入。(截图,需出现自己的学号、姓名)###

在自己建立的数据库上执行常见SQL语句(截图)###

Q2 使用JDBC连接数据库与Statement##

2.1 使用Statement操作数据库。(粘贴一段你认为比较有价值的代码,出现学号)###

//201521123014
public class JDBCTest {  
    /** 
     * 使用JDBC连接并操作mysql数据库 
     */  
    public static void main(String[] args) {  
        // 数据库驱动类名的字符串  
        String driver = "com.mysql.jdbc.Driver";  
        // 数据库连接串  
        String url = "jdbc:mysql://127.0.0.1:3306/jdbctest";  
        // 用户名  
        String username = "root";  
        // 密码  
        String password = "mysqladmin";  
        Connection conn = null;  
        Statement stmt = null;  
        ResultSet rs = null;  
        try {  
            // 1、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中)  
            Class.forName(driver );  
            // 2、获取数据库连接  
            conn = DriverManager.getConnection(url, username, password);  
            // 3、获取数据库操作对象  
            stmt = conn.createStatement();  
            // 4、定义操作的SQL语句  
            String sql = "select * from user where id = 100";  
            // 5、执行数据库操作  
            rs = stmt.executeQuery(sql);  
            // 6、获取并操作结果集  
            while (rs.next()) {  
                System.out.println(rs.getInt("id"));  
                System.out.println(rs.getString("name"));  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            // 7、关闭对象,回收数据库资源  
            if (rs != null) { //关闭结果集对象  
                try {  
                    rs.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (stmt != null) { // 关闭数据库操作对象  
                try {  
                    stmt.close();  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (conn != null) { // 关闭数据库连接对象  
                try {  
                    if (!conn.isClosed()) {  
                        conn.close();  
                    }  
                } catch (SQLException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }  
}  
  

2.2 使用JDBC操作数据库主要包含哪几个步骤?###

1)加载(注册)数据库驱动(到JVM)。
2)建立(获取)数据库连接。
3)创建(获取)数据库操作对象。
4)定义操作的SQL语句。
5)执行数据库操作。
6)获取并操作结果集。
7)关闭对象,回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接)。

Q3 PreparedStatement与参数化查询##

3.1 使用PreparedStatement根据用户指定的查询条件进行查询。(粘贴一段你认为比较有价值的代码,出现学号)###

3.2 批量更新-批量插入1000个学生,统计整个操作所消耗的时间。(使用方法executeBatch)###

Q4 JDBCUtil与DAO##

4.1 粘贴一段你认为比较有价值的代码,出现学号###

public class BaseDao {

    // 初始化参数
    private Connection con;
    private PreparedStatement pstmt;
    private ResultSet rs;

 public void update(String sql,Object[] paramsValue){

        try {
            // 获取连接
            con = JdbcUtil.getConnection();
            // 创建执行命令的stmt对象
            pstmt = con.prepareStatement(sql);
            // 参数元数据: 得到占位符参数的个数
            int count = pstmt.getParameterMetaData().getParameterCount();

            // 设置占位符参数的值
            if (paramsValue != null && paramsValue.length > 0) {
                // 循环给参数赋值
                for(int i=0;i<count;i++) {
                    pstmt.setObject(i+1, paramsValue[i]);
                }
            }
            // 执行更新
            pstmt.executeUpdate();

        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            JdbcUtil.closeAll(con, pstmt, null);
        }
}
编写实际操作的Dao类继承自BaseDao
public class AdminDao extends BaseDao {

    // 删除
    public void delete(int id) {
        String sql = "delete from admin where id=?";
        Object[] paramsValue = {id};
        super.update(sql, paramsValue);
    }

    // 插入
    public void insert(Admin admin) {
        String sql = "insert into admin (userName,pwd) values (?,?)";
        Object[] paramsValue = {admin.getUserName(),admin.getPwd()};
        super.update(sql, paramsValue);
    }

    // 查询全部
    public List<Admin> getAll(){
        String sql = "select * from admin";
        List<Admin> list = super.query(sql, null, Admin.class);
        return list;
    }

    // 根据条件查询(主键)
    public Admin findById(int id){
        String sql = "select * from admin where id=?";
        List<Admin> list = super.query(sql, new Object[]{id}, Admin.class);
        return  (list!=null&&list.size()>0) ? list.get(0) : null;
    }
}

4.2 使用DAO模式访问数据库有什么好处?###

DAO (Data Access Objects) 数据访问对象,这些对象用于访问修改数据库。这样做的好处是,数据库的修改只要修改DAO层的访问方式就可以了,不用整个项目都进行修改。隔离业务逻辑代码和数据访问代码,
隔离不同数据库的实现。

Q5 使用数据库改造购物车系统##

5.1 使用数据库改造以前的购物车系统(应有图形界面)。如果以前为完成购物车系统,可编写基于数据库的学生管理系统。包括对学生的增删改查,要求使用。###

5.2 相比较使用文件,使用数据库存储与管理数据有何不一样?###

  1. 使用文件操作数据,需要打开文件和关闭文件,而用数据库来操作数据,只需要输入命令来实现数据的存储等功能,更加简单。
  2. 数据库还可以储存大量数据。
  3. 查看数据库的数据需要有密码的输入,而文件是任何人都可以查看,比较的话,数据库更安全

3. 码云#

3.1. 码云代码提交记录##

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图


4 课外阅读#

4.2 代码结构中Dao,Service,Controller,Util,Model是什么意思,为什么划分##

Model是模型,一般而言,会有人分的更细,VO,DTO等等。我并不推荐分的更细,这个Model常常和持久化的数据一一对应,如Mysql和MongoDB。
Model承载的作用就是数据的抽象,描述了一个数据的定义,Model的实例就是一组组的数据。整个系统都可以看成是数据的 流动,既然要流动,就一定是有流动的载体。
对于初学者而言,第一个要学会,就是建模,把业务逻辑映射成数据模型。

Util是工具的意思,一般来说,常常用来描述和业务逻辑没有关系的数据处理。Util一般要和私有方法对比:私有方法一般来说是只是在特地场景下使用的,私有方法越多,代码结构越乱。常见的重构策略就是首先从一个越长行数的代码里抽象出若干个私有方法,然后再抽出公用的Util。如果有可能,尽可能的少用私有方法,而是把他换成一个公用的Util,代表他和业务逻辑是不相关的。通常命名也是ArticleUtil,CommentUtil之类的。

Service比Util的概念大很多,它的重点是在于提供一个服务。这个服务可能包括一系列的数据处理,也有可能会调用多个Util,或者是调用别的服务。总归一句话,就是,有什么事情,你来找我。

Dao一般而言,都是用来和底层数据库通信,负责对数据库的增删改查

Controller控制中心,所有的指令,调度都从这里发出去。哪一个Service做什么事儿,谁的数据提供给谁,一般而言,都是在Controller里实现的。

4.3 mysq数据库管理工具navicat基本使用方法##

参考链接

posted on 2017-05-28 15:19  Paparazzi  阅读(208)  评论(0编辑  收藏  举报