发表于: 2019-11-15 22:54:33
1 1009
今日完成(日志由于太长了,下午+晚上的一部分文字被折叠了,问了师兄,说是网站的bug)
上午
1.练习查询,修改的sql语句
sql语句总结
插入
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
查询
SELECT 列名称 FROM 表名称(where 列 =?)
SELECT * FROM 表名称
修改
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
删除
DELETE FROM 表名称 WHERE 列名称 = 值
2.学习建立索引
建表后创建
ALTER TABLE 表名 ADD [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY [索引名] (字段名1 [(长度)] [ASC | DESC]) [USING 索引方法
CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX 索引名 ON 表名(字段名) [USING 索引方法];
说明
UNIQUE:可选。表示索引为唯一性索引。
FULLTEXT:可选。表示索引为全文索引。
SPATIAL:可选。表示索引为空间索引。
INDEX和KEY:用于指定字段为索引,两者选择其中之一就可以了,作用是一样的。
索引名:可选。给创建的索引取一个新名称。
字段名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段。
长度:可选。指索引的长度,必须是字符串类型才可以使用。
ASC:可选。表示升序排列。
DESC:可选。表示降序排列
注:索引方法默认使用B+TREE
索引建立后查询加快了
索引总结:
索引:相当于书的目录,所以索引是一个单独的,物理的数据结构,它与目录一样,也是单独存在的。但索引的建立依赖于表的建立。
作用:1.加快表之间的连接速度
2.加快数据检索速度
3.保证数据记录的唯一性,唯一性索引
4.减少查询的时间
索引的类型:
不重复的,称为:唯一索引
如果索引不唯一,称为 :单列索引
多列组合的索引,称为:复合索引
根据索引的顺序与数据表的物理顺序是否形同,索引分为两种类型,聚集索引和非聚集索引
聚集索引:根据行的键值,在表或视图中排序和存储数据行,每个表只能有一个聚集索引。
非聚集索引:一个表可以创建多个非聚集索引,最多可以有249个非聚集索引。
索引的使用
考虑创建索引的列
1.主键列上
2.经常用在连接的列上
3.经常需要范围查询的列上
4.经常要排序的列上
不考虑创建索引的列
避免:1.从来不查询的列 2.选择性低(重复值多)的列 3.小表(记录少的) 4.更新比较频繁的
3.将表数据备份后删除再导入恢复
4.maven命令:
clean:打包会安装到本地的maven仓库中,如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,
install:打包会安装到本地的maven仓库中,如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,
下午+晚上
1.安装配置IDEA,(已有maven,jdk,)
jdk:Java开发环境,jre:Java运行环境;
2.利用idea创建maven项目,创建jdbc.java连接数据库,实现简单的查询
public class jdbc {
public static void main(String[] args) {
//声明Connection对象
Connection con;
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名mydata
String url = "jdbc:mysql://127.0.0.1:3306/mytest?characterEncoding=UTF-8";
// //MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "admin";
//遍历查询结果集
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url, user, password);
//2.创建statement类对象,用来执行SQL语句!!
Statement statement = con.createStatement();
//要执行的SQL语句
//查询
String sql = "select * from person ";
//3.ResultSet类,用来存放获结果集!!
ResultSet queryrs = statement.executeQuery(sql);
//输出结果
while (queryrs.next()) {
int id = queryrs.getInt("id");
String name = queryrs.getString("name");
System.out.println(id);
System.out.println(name);
}
//更新
String updatesql = "UPDATE person SET name = '刘民' WHERE id = 97";
int updaters = statement.executeUpdate(updatesql);
System.out.println();
// //插入
// String insertsql = "insert into person (id,name,Create_at)values(21,'刘旺',todate('2014-02-14'))";
// int insertrs = statement.executeUpdate(insertsql);
// System.out.println(insertrs);
// //删除
// String delectsql = "delect from person where id =10086";
// int delectrs = statement.executeUpdate(delectsql);
// System.out.println(delectrs);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2.配置pom.xml和applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.hbdfxy</groupId>
<artifactId>OA</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!--suppress ALL -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.wxc"/>
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--启用事务注解-->
<tx:annotation-driven/>
3.创建person实体类(set,get方法太长,所以只截图了)
总结;
学的有点迷糊,jbdcutil.Java的编写浪费了很多时间
遇到问题:
1.jbdcutil.Java中删除和update语句有问题,暂时先注释掉了
2.编写代码出现错误,
String url = "jdbc:mysql://127.0.0.1:3306/mytest?characterEncoding=UTF-8";
中把数据库名称写成表名了,导致连接失败,在师兄帮助下解决,
代码不规范,没有见名知义,后修改;
3.配置applicationContext.xml时出现大面积爆红,后在其他师兄日报下找到解决方法,改正后
还有报错
事物注解启用爆红,暂时无法解决
明天要做的事情
解决今天的问题
继续完成任务一第17步,继续学习JdbcTemplate和Mybatis、spring,
编写单元测试的代码
练习debug,学着看报错信息和日志
评论