发表于: 2019-11-10 21:40:55

1 1033


今天完成的事情:任务一主要是对数据库的操作和框架 总结一下数据库

数据库简介:

*数据库概念

*数据库管理系统概念(DBMS)

    常见数据库管理系统:

      MYSQL :免费开源的小型数据库

      Oracle:收费大型数据库

      DB2:常用于银行系统中的数据库

      SQLServer:微软的收费数据库,使用c#,.net语言

            SQLite:嵌入式的小型数据库,用于手机端

        

*数据库的层级关系

    客户端-->数据库管理系统(DBMS)-->数据库 --> 一堆表

*数据库与java的对比

    类--表

    表中每行数据--对象

    

*数据库软件的关联

    首先是mysql,其中包括数据库和数据库管理系统

    然后是数据库管理系统的编写软件,软件有很多,这里使用SQLYong

     注意:不使用sqlyong的话可以直接使用dos进行开发,后期也将使用java与数据库进行连接从而进行直接由java端的开发。  

                                          

*数据库开发语言

    SQL(Structured Query Language)

    注意:所有数据库都遵循sql语言

    sql语言分类:

        数据定义语言:DDL

        数据操作语言:DML

        数据控制语言:DCL

        数据查询语言:DQL

*数据库数据基本类型

    int   double   varchar   data主要的

        其余的都是大量的,但是现在暂时不用

*基本操作语言

    create database 数据库名字; (创建数据库)

    show databases;                (展示已有的数据库)

    drop database 数据库名称;   (删除数据库)

    use 数据库名称;(切换到要操作的数据库)

    creat table();   (创建表,即对象)

            *table中格式: 

                列名 数据类型 约束 (注:约束包括主键约束,非空约束,唯一约束)

 *表中的基本操作事项   

    主键约束(特定非空,唯一。没有任何意义,只是标识唯一性)

     

   1.查看数据库中的所有表:

       show tables;

   2.查看表结构

        desc 表名;

   3.删除表

        drop table 表名;

   4.表中添加列

      alter table 表名 add 列名 数据类型 约束        

   5.修改列

        alter table 表名 modify 列名 数据类型 约束

   6.修改列名

        alter table 表名 change 旧列名 新列名 数据类型 约束

   7.改表名

        rename table 表名 to 新表名

*表中的操作

    增加操作

    1.向数据表中添加数据 insert

        insert into 表名(列名1,列名2)values (值1,值2,值3)

    2.批量加数据

         insert into 表名(列名1,列名2)values (值1,值2,值3),(值1,值2,值3)...

    更新操作

     1.表中的修改 update

        update 表名 set 列1=值1,列2= 值2 where条件(条件就是数据中的唯一标识)

        条件查找语句:=   <   >   and   or   not

    删除操作      

    1.删除表中数据   

          delete from 表名 where 条件

    查询操作

        1.查询指定列的数据

            select 列名1 列名2 from 表名

        2.查询所有数据

            slect * from 表名

         3.查询去掉重复记录

            select distinct  关键字 表名

        4.查询重新改名

            select 列名 AS ‘临时显示名称’from 表名

        5.查询数据中,直接进行数学计算

            select 列名,列+1000 from 表明

        6.条件查询 

            select *from 表名 where zname =''

            区间查找

            select *from 表名 where zmoney>=2000 and zmoney <=3000

            select *from 表名 where zmoney between 200 and 500

            金额是其中一个:

                select * from 表名 where zmony = 1000 or zmoney = 2000

                select* from 表明 where zmony  in(1000,2000)

        7.模糊查询,使用必须配合通配符%

            select *from zhangwu where zname like '%支出%'

        8.查询不为空的

            select *from zhangwu where zname is not null

            select *from zhangwu where  not (zname is null)

        9.查询,对结果集进行排列 order by 列名【desc】【asc】

            例如:select *from zhangwu order by zname asc

        

*聚合函数进行查询和计算

    count(列) 求和,对表中数据求和

     例如:select count(*) from zhangwu

      

    sun , 求和,对一列数据进行求和运算

    例如:select sun(zmony) from zhangwu 

    select sun(zmony) from zhangwu where zname like'% %'

   

     max,min, avg函数




遇到的问题:拼写错误 已改正

Access denied for user 'root'@'localhost' (using password: YES)


数据库连接用户名密码大小写写错了

收获:Spring和mybatis整合完成了查询  系统深入的理解了数据库

会使用Spring和mybatis框架

Spring和mybatis整合:

结构

applicationContext.xml

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
<!--根目录-->
   <typeAliases>
<!--设置这个包下面的所有类的别名-->
       <package name="com.jnshu.pojo"/>
</typeAliases>
<environments default="development">
<!-- 环境 default:表示默认使用哪一个环境-->
       <environment id="development">
<!--  id:表示这个环境的名称-->
           <!-- transactionManager:事务管理器 (使用的JDBC事务管理器)-->
           <transactionManager type="JDBC"></transactionManager>
<!-- MyBatis自帶POOLED连接池(数据源) -->
           <dataSource type="POOLED">
<!--dataSource的类型可以配置成其内置类型之一,如UNPOOLEDPOOLEDJNDI

    如果将类型设置成UNPOOLEDmybaties会为每一个数据库操作创建一个新的连接,并关闭它。该方式适用于只有小规模数量并发用户的简单应用程序上。

    如果将属性设置成POOLEDmybaties会创建一个数据库连接池,连接池的一个连接将会被用作数据库操作。一旦数据库操作完成,mybaties会将此连接返回给连接池。在开发或测试环境中经常用到此方式。

    如果将类型设置成JNDImybaties会从在应用服务器向配置好的JNDI数据源DataSource获取数据库连接。在生产环境中优先考虑这种方式。-->
               <property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/how2java?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>


</environments>

<!-- resource:表示 核心配置文件(mybatis-config.xml)必须与所有的对象映射文件(ProductMapper.xml)关联!!!! -->
   <mappers>
<mapper resource="com/jnshu/pojo/Category.xml"/>
</mappers>


</configuration>

Category.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
       PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jnshu.mapper.CategoryMapper">
<insert id="add" parameterType="Category" >
insert into category_ ( name ) values (#{name})
</insert>

<delete id="delete" parameterType="Category" >
delete from category_ where id= #{id}
</delete>

<select id="get" parameterType="_int" resultType="Category">
select * from category_ where id= #{id}
</select>

<update id="update" parameterType="Category" >
update category_ set name=#{name} where id=#{id}
</update>
<select id="list" resultType="Category">
select * from category_
</select>
</mapper>

CategoryMapper

package com.jnshu.mapper;

import com.jnshu.pojo.Category;

import java.util.List;

public interface CategoryMapper {
public int add(Category category);

public void delete(int id);

public Category get(int id);

public int update(Category category);

public List<Category> list();

public int count();
}


明天计划的事情:把整合增删改查写完  学习服务器的基本命令和知识 在服务器测试调试写好的程序 任务19


返回列表 返回列表
评论

    分享到